From 3e538dabe61e1f6d1a88f906a8aff22a76d46d2a Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Tue, 2 Aug 2022 23:48:10 +0100 Subject: [PATCH] more random cleanup (#1716) * correct some comments * change `pc-cheats?` macro to be more generic * more generic custom fps stuff * better subtitle timings * oopsie! * fix burn effect stacking * fix some windows scripts * fix project * cleanup this func * more fix * oops * ??? --- decompiler/config/all-types.gc | 2 +- game/assets/game_subtitle.gp | 6 +- game/assets/game_text.gp | 6 +- game/assets/jak1/subtitle/game_subtitle_en.gd | 38 ++++-- goal_src/jak1/engine/debug/default-menu.gc | 22 +-- goal_src/jak1/engine/draw/drawable.gc | 2 +- goal_src/jak1/engine/game/settings.gc | 128 ++++++++---------- goal_src/jak1/engine/gfx/foreground/eye.gc | 7 +- goal_src/jak1/engine/gfx/hw/display.gc | 19 +-- goal_src/jak1/engine/gfx/hw/video.gc | 16 +-- goal_src/jak1/engine/gfx/sky/sky-tng.gc | 16 +-- goal_src/jak1/engine/target/sidekick.gc | 2 +- goal_src/jak1/engine/target/target-death.gc | 6 +- goal_src/jak1/engine/target/target-part.gc | 6 +- goal_src/jak1/engine/target/target.gc | 7 +- goal_src/jak1/game.gp | 21 ++- goal_src/jak1/pc/pckernel-h.gc | 2 +- goal_src/jak1/pc/pckernel.gc | 26 ++-- goal_src/jak1/pc/progress-pc.gc | 8 +- scripts/batch/test-offline-and-update.bat | 2 +- scripts/batch/test-offline.bat | 2 +- .../jak1/engine/target/target-part_REF.gc | 7 +- 22 files changed, 167 insertions(+), 184 deletions(-) diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index acefd3cd88..a147a09fbb 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -20806,7 +20806,7 @@ (define-extern birth-func-target-orient (function int sparticle-cpuinfo sparticle-launchinfo none)) (define-extern birth-func-vector-orient (function int sparticle-cpuinfo sparticle-launchinfo none)) (define-extern part-tracker-track-target-joint (function int sparticle-cpuinfo sparticle-launchinfo none)) ;; 3rd arg could also be a vector -(define-extern process-drawable-burn-effect (function time-frame rgbaf :behavior target)) +(define-extern process-drawable-burn-effect (function time-frame none :behavior target)) ;; ---------------------- diff --git a/game/assets/game_subtitle.gp b/game/assets/game_subtitle.gp index ba8dc15bb5..dab306b12b 100644 --- a/game/assets/game_subtitle.gp +++ b/game/assets/game_subtitle.gp @@ -1,7 +1,7 @@ ;; "project file" for subtitles make tool. -;; it's very simple... a list of (version file) -;; eventually should also include output filename -;; you can find the game-text-version parsing in .cpp and an enum in goal-lib.gc +;; it's very simple... a list of (action args...) +;; currently the only action available is 'file' +;; and it takes 1 argument: input filename. (subtitle (file "game/assets/jak1/subtitle/game_subtitle_en.gd") diff --git a/game/assets/game_text.gp b/game/assets/game_text.gp index dd440178e6..e671bb2ef0 100644 --- a/game/assets/game_text.gp +++ b/game/assets/game_text.gp @@ -1,7 +1,7 @@ ;; "project file" for text make tool. -;; it's very simple... a list of (version file) -;; eventually should also include output filename -;; you can find the game-text-version parsing in .cpp and an enum in goal-lib.gc +;; it's very simple... a list of (action args...) +;; currently the only action available is 'file' +;; and it takes 1 argument: input filename. (text ;; NOTE : we compile using the fixed v2 encoding because it's what we use. diff --git a/game/assets/jak1/subtitle/game_subtitle_en.gd b/game/assets/jak1/subtitle/game_subtitle_en.gd index c46d311a12..2cada97747 100644 --- a/game/assets/jak1/subtitle/game_subtitle_en.gd +++ b/game/assets/jak1/subtitle/game_subtitle_en.gd @@ -637,9 +637,11 @@ ("sksp0010" :hint #x231 (0 "DAXTER" "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!")) ("sksp0013" :hint #x232 - (0 "DAXTER" "DID YOU SEE THE SIZE OF THE BITE THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?") - (315) - (337 "DAXTER" "WE BEST STAY WAY CLEAR OF THEM! I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY.") + (0 "DAXTER" "DID YOU SEE THE SIZE OF THE BITE") + (113 "DAXTER" "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?") + (300) + (325 "DAXTER" "WE BEST STAY WAY CLEAR OF THEM!") + (475 "DAXTER" "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY.") ) ("sksp0015" :hint #x234 @@ -647,7 +649,10 @@ (228 "DAXTER" "I HOPE THEY WEREN'T AS UGLY IN PERSON!") ) -("sksp0017" :hint #x235 (0 "DAXTER" "WHOA! CHECK OUT THAT FUNKY SCULPTURE SITTIN' ON THE ROCKS OVER THERE!")) +("sksp0017" :hint #x235 + (0 "DAXTER" "WHOA! CHECK OUT THAT FUNKY SCULPTURE") + (165 "DAXTER" "SITTIN' ON THE ROCKS OVER THERE!") + ) ("sksp0043" :hint #x24e (0 "DAXTER" "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.") @@ -1586,7 +1591,7 @@ ("asstvb20" :hint #x327 (40 "KEIRA" "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!") - (310 "KEIRA" "THAT'S ONE MORE POWER CELL!") + (298 "KEIRA" "THAT'S ONE MORE POWER CELL!") ) ("asstvb21" :hint #x328 @@ -1768,7 +1773,7 @@ ("sksp0110" :hint #x336 (0 "DAXTER" "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...") - (164 "DAXTER" "AVOID THE DARK ECO BOXES!") + (150 "DAXTER" "AVOID THE DARK ECO BOXES!") ) ("sksp0111" :hint #x337 (0 "DAXTER" "LET'S CHASE THOSE MOLES BACK UNDERGROUND.")) @@ -2275,12 +2280,15 @@ (227 "KEIRA" "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!") (318 "DAXTER" "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.") (447) - (450 "KEIRA" "UNDER CONTROL?! LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,") + (450 "KEIRA" "UNDER CONTROL?!") + (503 "KEIRA" "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,") (591 "KEIRA" "THE SAGES HAVE BEEN KIDNAPPED,") - (644 "KEIRA" "GOL AND MAIA HAVE GATHERED ENOUGH ECO TO COMPLETE THEIR TERRIBLE PLAN,") - (757 "KEIRA" "AND TO STOP THEM, YOU'RE GOING TO HAVE TO FIGHT YOUR WAY THROUGH THEIR CITADEL!") + (644 "KEIRA" "GOL AND MAIA HAVE GATHERED ENOUGH ECO") + (700 "KEIRA" "TO COMPLETE THEIR TERRIBLE PLAN,") + (755 "KEIRA" "AND TO STOP THEM, YOU'RE GOING TO HAVE TO") + (807 "KEIRA" "FIGHT YOUR WAY THROUGH THEIR CITADEL!") (876) - (888 "DAXTER" "UH... YEAH. THAT ABOUT... SUMS IT UP.") + (888 "DAXTER" "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.") (1011) (1014 "KEIRA" "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!") (1112 "KEIRA" "AND JAK...") @@ -2353,13 +2361,15 @@ ) ("green-sagecage-introduction" - (130 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") - (207 "DAXTER" "NICE TO SEE YOU TOO! DO THEY HAVE YOU MOPPING THE FLOORS NOW?") + (128 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") + (207 "DAXTER" "NICE TO SEE YOU TOO!") + (269) + (275 "DAXTER" "DO THEY HAVE YOU MOPPING THE FLOORS NOW?") (343 "SAGE" "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US") (477 "SAGE" "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.") (574) - (584 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") - (710 :offscreen "SAGE" "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.") + (583 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") + (709 :offscreen "SAGE" "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.") (800) (816 :offscreen "SAGE" "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,") (926 :offscreen "SAGE" "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.") diff --git a/goal_src/jak1/engine/debug/default-menu.gc b/goal_src/jak1/engine/debug/default-menu.gc index b169e8ed97..fb1b0008c7 100644 --- a/goal_src/jak1/engine/debug/default-menu.gc +++ b/goal_src/jak1/engine/debug/default-menu.gc @@ -4601,45 +4601,45 @@ (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-green)) (pc-cheat-toggle-and-tune *pc-settings* eco-blue) ) - (pc-cheats? *pc-settings* eco-blue))) + (pc-cheats? (-> *pc-settings* cheats) eco-blue))) (flag "Red eco" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (logclear! (-> *pc-settings* cheats) (pc-cheats eco-blue eco-yellow eco-green)) (pc-cheat-toggle-and-tune *pc-settings* eco-red) ) - (pc-cheats? *pc-settings* eco-red))) + (pc-cheats? (-> *pc-settings* cheats) eco-red))) (flag "Green eco" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-blue)) (pc-cheat-toggle-and-tune *pc-settings* eco-green) ) - (pc-cheats? *pc-settings* eco-green))) + (pc-cheats? (-> *pc-settings* cheats) eco-green))) (flag "Yellow eco" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-blue eco-green)) (pc-cheat-toggle-and-tune *pc-settings* eco-yellow) ) - (pc-cheats? *pc-settings* eco-yellow))) + (pc-cheats? (-> *pc-settings* cheats) eco-yellow))) (flag "Invincibility" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (pc-cheat-toggle-and-tune *pc-settings* invinc) ) - (pc-cheats? *pc-settings* invinc))) + (pc-cheats? (-> *pc-settings* cheats) invinc))) (flag "Blue sidekick" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (pc-cheat-toggle-and-tune *pc-settings* sidekick-blue) ) - (pc-cheats? *pc-settings* sidekick-blue))) + (pc-cheats? (-> *pc-settings* cheats) sidekick-blue))) (flag "All flavas" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (pc-cheat-toggle-and-tune *pc-settings* tunes) ) - (pc-cheats? *pc-settings* tunes))) + (pc-cheats? (-> *pc-settings* cheats) tunes))) (flag "Real time tod" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (pc-cheat-toggle-and-tune *pc-settings* sky) ) - (pc-cheats? *pc-settings* sky))) + (pc-cheats? (-> *pc-settings* cheats) sky))) ) ) (flag "Letterbox" #f ,(dm-lambda-boolean-flag (-> *pc-settings* letterbox?))) @@ -4695,11 +4695,11 @@ ) (menu "Framerate" (flag "60" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 60)) - (case (-> *setting-control* default video-mode) (('ntsc 'pal))))) + (= (-> *pc-settings* target-fps) 60))) (flag "100" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 100)) - (case (-> *setting-control* default video-mode) (('100fps))))) + (= (-> *pc-settings* target-fps) 100))) (flag "150" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 150)) - (case (-> *setting-control* default video-mode) (('150fps))))) + (= (-> *pc-settings* target-fps) 150))) ) (menu "MSAA" (flag "Off" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 1)) diff --git a/goal_src/jak1/engine/draw/drawable.gc b/goal_src/jak1/engine/draw/drawable.gc index db4fa3ffc4..c48a0c9283 100644 --- a/goal_src/jak1/engine/draw/drawable.gc +++ b/goal_src/jak1/engine/draw/drawable.gc @@ -1638,7 +1638,7 @@ ;; need to call reset-graph with some magic number ;; also stash this parameter so that if things go really wrong and our DMA transfer ;; times out, we can reset-graph to the appropriate video mode - (if (or (= (-> *setting-control* current video-mode) 'ntsc) (= (-> *setting-control* current video-mode) '150fps) (= (-> *setting-control* current video-mode) '100fps)) + (if (or (= (-> *setting-control* current video-mode) 'ntsc) (= (-> *setting-control* current video-mode) 'custom)) (set! *video-reset-parm* 2) (set! *video-reset-parm* 3) ) diff --git a/goal_src/jak1/engine/game/settings.gc b/goal_src/jak1/engine/game/settings.gc index ca2f48ac79..ea4135e63c 100644 --- a/goal_src/jak1/engine/game/settings.gc +++ b/goal_src/jak1/engine/game/settings.gc @@ -423,75 +423,67 @@ (let ((gp-0 (-> *setting-control* default)) (s5-0 (-> *setting-control* current)) ) - (let ((f0-2 (* 0.01 (the float (scf-get-volume))))) - (set! (-> gp-0 ocean-off) #f) - (set! (-> gp-0 allow-look-around) #t) - (set! (-> gp-0 border-mode) #f) - (set! (-> gp-0 sfx-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) - (set! (-> gp-0 music-volume) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) - (set! (-> gp-0 dialog-volume) (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2)))))) - (set! (-> gp-0 ambient-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) - (set! (-> gp-0 sfx-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) - (set! (-> gp-0 music-volume-movie) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) - (set! (-> gp-0 ambient-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) - (set! (-> gp-0 dialog-volume-hint) (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2)))))) + (let ((f0-2 (* 0.01 (the float (scf-get-volume))))) + (set! (-> gp-0 ocean-off) #f) + (set! (-> gp-0 allow-look-around) #t) + (set! (-> gp-0 border-mode) #f) + (set! (-> gp-0 sfx-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 music-volume) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 dialog-volume) (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2)))))) + (set! (-> gp-0 ambient-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 sfx-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 music-volume-movie) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 ambient-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 dialog-volume-hint) (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2)))))) + ) + (set! (-> gp-0 language) (scf-get-language)) + (set! (-> gp-0 process-mask) (process-mask execute sleep)) + (set! (-> gp-0 screenx) 0) + (set! (-> gp-0 screeny) 0) + (set! (-> gp-0 vibration) #t) + (set! (-> gp-0 auto-save) #f) + (set! (-> gp-0 play-hints) #t) + (set! (-> gp-0 movie) (the-as (pointer process) #f)) + (set! (-> gp-0 talking) (the-as (pointer process) #f)) + (set! (-> gp-0 spooling) (the-as (pointer process) #f)) + (set! (-> gp-0 hint) (the-as (pointer process) #f)) + (set! (-> gp-0 ambient) (the-as (pointer process) #f)) + (set! (-> gp-0 sound-flava) (the-as uint 49)) + (set! (-> gp-0 sound-flava-priority) 0.0) + (set! (-> gp-0 music) #f) + (set! (-> gp-0 bg-a-speed) 8.0) + (set! (-> gp-0 allow-pause) #t) + (set! (-> gp-0 allow-progress) #t) + (case (scf-get-aspect) + ((2) + (set! (-> gp-0 aspect-ratio) 'aspect16x9) + ) + (else + (set! (-> gp-0 aspect-ratio) 'aspect4x3) + ) + ) + (if (zero? *boot-video-mode*) + (set! (-> gp-0 video-mode) 'ntsc) + (set! (-> gp-0 video-mode) 'pal) + ) + (set! (-> s5-0 sfx-volume) (+ -1.0 (-> gp-0 sfx-volume))) + (set! (-> s5-0 music-volume) (+ -1.0 (-> gp-0 music-volume))) + (set! (-> s5-0 dialog-volume) (+ -1.0 (-> gp-0 dialog-volume))) + (set! (-> s5-0 ambient-volume) (+ -1.0 (-> gp-0 ambient-volume))) + (set! (-> s5-0 sfx-volume-movie) (-> gp-0 sfx-volume-movie)) + (set! (-> s5-0 music-volume-movie) (-> gp-0 music-volume-movie)) + (set! (-> s5-0 ambient-volume-movie) (-> gp-0 ambient-volume-movie)) + (set! (-> s5-0 dialog-volume-hint) (-> gp-0 dialog-volume-hint)) + (set! (-> s5-0 language) (+ (-> gp-0 language) -1)) + (set! (-> s5-0 aspect-ratio) #f) + (set! (-> s5-0 video-mode) #f) + (set! (-> s5-0 music) #f) + (set! (-> s5-0 bg-a-speed) (-> gp-0 bg-a-speed)) + (set! (-> s5-0 allow-pause) (-> gp-0 allow-pause)) + (set! (-> s5-0 allow-progress) (-> gp-0 allow-progress)) + (set! (-> s5-0 allow-look-around) (-> gp-0 allow-look-around)) + (set! (-> s5-0 ocean-off) (-> gp-0 ocean-off)) ) - (set! (-> gp-0 language) (scf-get-language)) - (set! (-> gp-0 process-mask) (process-mask execute sleep)) - (set! (-> gp-0 screenx) 0) - (set! (-> gp-0 screeny) 0) - (set! (-> gp-0 vibration) #t) - (set! (-> gp-0 auto-save) #f) - (set! (-> gp-0 play-hints) #t) - (set! (-> gp-0 movie) (the-as (pointer process) #f)) - (set! (-> gp-0 talking) (the-as (pointer process) #f)) - (set! (-> gp-0 spooling) (the-as (pointer process) #f)) - (set! (-> gp-0 hint) (the-as (pointer process) #f)) - (set! (-> gp-0 ambient) (the-as (pointer process) #f)) - (set! (-> gp-0 sound-flava) (the-as uint 49)) - (set! (-> gp-0 sound-flava-priority) 0.0) - (set! (-> gp-0 music) #f) - (set! (-> gp-0 bg-a-speed) 8.0) - (set! (-> gp-0 allow-pause) #t) - (set! (-> gp-0 allow-progress) #t) - (let ((v1-27 (scf-get-aspect))) - (if (= v1-27 2) - (set! (-> gp-0 aspect-ratio) 'aspect16x9) - (set! (-> gp-0 aspect-ratio) 'aspect4x3) - ) - ) - (case *boot-video-mode* - ((0) - (set! (-> gp-0 video-mode) 'ntsc) - ) - ((1) - (set! (-> gp-0 video-mode) 'pal) - ) - ((2) - (set! (-> gp-0 video-mode) '100fps) - ) - ((3) - (set! (-> gp-0 video-mode) '150fps) - ) - ) - (set! (-> s5-0 sfx-volume) (+ -1.0 (-> gp-0 sfx-volume))) - (set! (-> s5-0 music-volume) (+ -1.0 (-> gp-0 music-volume))) - (set! (-> s5-0 dialog-volume) (+ -1.0 (-> gp-0 dialog-volume))) - (set! (-> s5-0 ambient-volume) (+ -1.0 (-> gp-0 ambient-volume))) - (set! (-> s5-0 sfx-volume-movie) (-> gp-0 sfx-volume-movie)) - (set! (-> s5-0 music-volume-movie) (-> gp-0 music-volume-movie)) - (set! (-> s5-0 ambient-volume-movie) (-> gp-0 ambient-volume-movie)) - (set! (-> s5-0 dialog-volume-hint) (-> gp-0 dialog-volume-hint)) - (set! (-> s5-0 language) (+ (-> gp-0 language) -1)) - (set! (-> s5-0 aspect-ratio) #f) - (set! (-> s5-0 video-mode) #f) - (set! (-> s5-0 music) #f) - (set! (-> s5-0 bg-a-speed) (-> gp-0 bg-a-speed)) - (set! (-> s5-0 allow-pause) (-> gp-0 allow-pause)) - (set! (-> s5-0 allow-progress) (-> gp-0 allow-progress)) - (set! (-> s5-0 allow-look-around) (-> gp-0 allow-look-around)) - (set! (-> s5-0 ocean-off) (-> gp-0 ocean-off)) - ) ) diff --git a/goal_src/jak1/engine/gfx/foreground/eye.gc b/goal_src/jak1/engine/gfx/foreground/eye.gc index 2446d6216f..9430f6148e 100644 --- a/goal_src/jak1/engine/gfx/foreground/eye.gc +++ b/goal_src/jak1/engine/gfx/foreground/eye.gc @@ -843,12 +843,7 @@ (when (< v1-54 (the-as uint 10)) (set! (-> s5-3 blink) (-> *eye-work* blink-table v1-54)) (if (zero? v1-54) - (set! (-> s5-3 random-time) (the-as uint (the int (* (if (or (= (-> *setting-control* current video-mode) '150fps) - (= (-> *setting-control* current video-mode) '100fps)) - (if (= (-> *setting-control* current video-mode) '150fps) - 2.5 - 1.6667) - 1.0) (rand-vu-float-range 60.0 240.0))))) + (set! (-> s5-3 random-time) (the-as uint (the int (* (1/ DISPLAY_FPS_RATIO) (rand-vu-float-range 60.0 240.0))))) ) ) ) diff --git a/goal_src/jak1/engine/gfx/hw/display.gc b/goal_src/jak1/engine/gfx/hw/display.gc index 70a33229d9..71763deaf0 100644 --- a/goal_src/jak1/engine/gfx/hw/display.gc +++ b/goal_src/jak1/engine/gfx/hw/display.gc @@ -54,19 +54,12 @@ ;; 5 "ticks" per frame * 60 fps = 300 ticks per second. (set! (-> obj time-factor) 5.0) ) - (('100fps) - (set! (-> obj time-adjust-ratio) (* 0.6 ratio)) - (set! (-> obj seconds-per-frame) (* 0.01 ratio)) - (set! (-> obj frames-per-second) (* 100.0 (/ 1.0 ratio))) - ;; 3 "ticks" per frame * 100 fps = 300 ticks per second. - (set! (-> obj time-factor) 3.0) - ) - (('150fps) - (set! (-> obj time-adjust-ratio) (* 0.4 ratio)) - (set! (-> obj seconds-per-frame) (* (1/ 150.0) ratio)) - (set! (-> obj frames-per-second) (* 150.0 (/ 1.0 ratio))) - ;; 2 "ticks" per frame * 150 fps = 300 ticks per second. - (set! (-> obj time-factor) 2.0) + (('custom) + (set! (-> obj time-adjust-ratio) (* (/ 60.0 (-> *pc-settings* target-fps)) ratio)) + (set! (-> obj seconds-per-frame) (/ ratio (-> *pc-settings* target-fps))) + (set! (-> obj frames-per-second) (* (the float (-> *pc-settings* target-fps)) (/ 1.0 ratio))) + ;; x "ticks" per frame * y fps = 300 ticks per second. + (set! (-> obj time-factor) (/ 300.0 (-> *pc-settings* target-fps))) ) (else (format #t "Warning: Tried to set unsupported video-mode") diff --git a/goal_src/jak1/engine/gfx/hw/video.gc b/goal_src/jak1/engine/gfx/hw/video.gc index 971c3419ee..36db2f05bf 100644 --- a/goal_src/jak1/engine/gfx/hw/video.gc +++ b/goal_src/jak1/engine/gfx/hw/video.gc @@ -33,25 +33,13 @@ (set! (-> *math-camera* y-clip) 512.0) (set! (-> *shadow-data* texoffset y) 128.5) ) - (('100fps) + (('custom) (set! (-> *video-parms* screen-sy) 224) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 8) (set! (-> *video-parms* screen-pages-high) 7) (set! (-> *video-parms* relative-y-scale) 1.0) - (set! *ticks-per-frame* 5859) - (set! (-> *math-camera* isometric vector 1 y) 0.5) - (set! (-> *math-camera* y-pix) 112.0) - (set! (-> *math-camera* y-clip) 448.0) - (set! (-> *shadow-data* texoffset y) 112.5) - ) - (('150fps) - (set! (-> *video-parms* screen-sy) 224) - (set! (-> *setting-control* default screenx) 0) - (set! (-> *setting-control* default screeny) 8) - (set! (-> *video-parms* screen-pages-high) 7) - (set! (-> *video-parms* relative-y-scale) 1.0) - (set! *ticks-per-frame* 3906) + (set! *ticks-per-frame* (/ 585900 (-> *pc-settings* target-fps))) (set! (-> *math-camera* isometric vector 1 y) 0.5) (set! (-> *math-camera* y-pix) 112.0) (set! (-> *math-camera* y-clip) 448.0) diff --git a/goal_src/jak1/engine/gfx/sky/sky-tng.gc b/goal_src/jak1/engine/gfx/sky/sky-tng.gc index 69910fb11c..928cb9b733 100644 --- a/goal_src/jak1/engine/gfx/sky/sky-tng.gc +++ b/goal_src/jak1/engine/gfx/sky/sky-tng.gc @@ -169,17 +169,11 @@ (sky-make-moon-data *sky-parms* arg0) (let ((v1-0 *sky-tng-data*)) (case (-> *setting-control* current video-mode) - (('150fps) - (+! (-> v1-0 off-s-0) 6.4) - (+! (-> v1-0 off-t-0) 12.8) - (+! (-> v1-0 off-s-1) -8.4) - (+! (-> v1-0 off-t-1) 16.8) - ) - (('100fps) - (+! (-> v1-0 off-s-0) 9.6) - (+! (-> v1-0 off-t-0) 19.2) - (+! (-> v1-0 off-s-1) -12.6) - (+! (-> v1-0 off-t-1) 25.2) + (('custom) + (+! (-> v1-0 off-s-0) (* 16.0 DISPLAY_FPS_RATIO)) + (+! (-> v1-0 off-t-0) (* 32.0 DISPLAY_FPS_RATIO)) + (+! (-> v1-0 off-s-1) (* -21.0 DISPLAY_FPS_RATIO)) + (+! (-> v1-0 off-t-1) (* 42.0 DISPLAY_FPS_RATIO)) ) (else (+! (-> v1-0 off-s-0) 16) diff --git a/goal_src/jak1/engine/target/sidekick.gc b/goal_src/jak1/engine/target/sidekick.gc index 86a9dbd625..aa87a04ea3 100644 --- a/goal_src/jak1/engine/target/sidekick.gc +++ b/goal_src/jak1/engine/target/sidekick.gc @@ -151,7 +151,7 @@ (set! (-> self draw color-mult quad) v1-22) ) (with-pc ;; duh! - (when (pc-cheats? *pc-settings* sidekick-blue) + (when (pc-cheats? (-> *pc-settings* cheats) sidekick-blue) (set! (-> self draw color-mult x) (set! (-> self draw color-mult y) 0.1))) ) (let ((v1-26 (-> self parent-override 0 draw color-emissive quad))) diff --git a/goal_src/jak1/engine/target/target-death.gc b/goal_src/jak1/engine/target/target-death.gc index 34038d1514..1327aee2fe 100644 --- a/goal_src/jak1/engine/target/target-death.gc +++ b/goal_src/jak1/engine/target/target-death.gc @@ -596,7 +596,11 @@ ) (case (-> arg0 mode) (('burn 'burnup) - (process-spawn-function process process-drawable-burn-effect 1200 :to self) + (if (not (handle->process (-> self burn-proc))) + (set! (-> self burn-proc) + (ppointer->handle (process-spawn-function process process-drawable-burn-effect (seconds 4) :to self)) + ) + ) ) (('tar) (sound-play "get-burned") diff --git a/goal_src/jak1/engine/target/target-part.gc b/goal_src/jak1/engine/target/target-part.gc index e658c3d855..3953e0124d 100644 --- a/goal_src/jak1/engine/target/target-part.gc +++ b/goal_src/jak1/engine/target/target-part.gc @@ -2178,11 +2178,9 @@ 0 ) ) - (let ((v0-8 (-> (the-as process-drawable (-> s4-1 0)) draw color-mult))) - (set! (-> v0-8 quad) (-> s5-1 quad)) - v0-8 - ) + (set! (-> (the-as process-drawable (-> s4-1 0)) draw color-mult quad) (-> s5-1 quad)) ) + (none) ) (defpart 2391 diff --git a/goal_src/jak1/engine/target/target.gc b/goal_src/jak1/engine/target/target.gc index 5d147b3b04..54600b7fca 100644 --- a/goal_src/jak1/engine/target/target.gc +++ b/goal_src/jak1/engine/target/target.gc @@ -812,8 +812,7 @@ (suspend) ;; This controls the slow walk animation that occurs after landing from a jump. > 60fps was broken here so I think should not be tied to seconds-per-frame ;; unknown-float01 is the magnitude of xz velocity - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control unknown-float01)) (if (or (= (-> *setting-control* current video-mode) '150fps) - (= (-> *setting-control* current video-mode) '100fps)) + (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control unknown-float01)) (if (= (-> *setting-control* current video-mode) 'custom) 0.016666668 (-> *display* seconds-per-frame))) (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) @@ -2444,9 +2443,7 @@ (seek! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length) - (* 245760.0 (if (or (= (-> *setting-control* current video-mode) '150fps) - (= (-> *setting-control* current video-mode) '100fps) - ) + (* 245760.0 (if (= (-> *setting-control* current video-mode) 'custom) 0.016666668 (-> *display* seconds-per-frame) ) diff --git a/goal_src/jak1/game.gp b/goal_src/jak1/game.gp index c89f76ab23..c6726d1e9b 100644 --- a/goal_src/jak1/game.gp +++ b/goal_src/jak1/game.gp @@ -1680,7 +1680,8 @@ "engine/" :deps - ("$OUT/ps2/pad.o") + ("$OUT/obj/pad.o" + "$OUT/obj/dma-disasm.o") "gfx/hw/gs.gc" "gfx/hw/display-h.gc" "math/vector.gc" @@ -1692,7 +1693,18 @@ "gfx/math-camera.gc" "gfx/font-h.gc" "load/decomp-h.gc" - "gfx/hw/display.gc" + ) + +(goal-src "engine/gfx/hw/display.gc" "decomp-h" "pckernel-h") + +(goal-src-sequence + ;; prefix + "engine/" + + :deps + ("$OUT/obj/display.o" + "$OUT/obj/decomp-h.o") + "engine/connect.gc" "ui/text-h.gc" "game/settings-h.gc" @@ -1908,7 +1920,8 @@ "engine/" :deps - ("$OUT/main.o") + ("$OUT/obj/main.o" + "$OUT/obj/video.o") "collide/collide-cache.gc" "entity/relocate.gc" @@ -2004,7 +2017,7 @@ ) ;; Custom or Modified Code -(goal-src "pc/pckernel-h.gc" "dma-disasm") +(goal-src "pc/pckernel-h.gc" "dma-buffer") (goal-src "pc/pckernel.gc" "settings" "video") (goal-src "pc/subtitle.gc" "text" "pckernel" "hint-control" "loader-h" "gsound" "ambient") (goal-src "pc/progress-pc.gc" "progress" "pckernel") diff --git a/goal_src/jak1/pc/pckernel-h.gc b/goal_src/jak1/pc/pckernel-h.gc index f976eca28f..52e67cd4e4 100644 --- a/goal_src/jak1/pc/pckernel-h.gc +++ b/goal_src/jak1/pc/pckernel-h.gc @@ -129,7 +129,7 @@ ) (defmacro pc-cheats? (obj &rest cheats) - `(logtest? (-> ,obj cheats) (pc-cheats ,@cheats))) + `(logtest? ,obj (pc-cheats ,@cheats))) ;; music log info (deftype pc-music-log-entry (structure) diff --git a/goal_src/jak1/pc/pckernel.gc b/goal_src/jak1/pc/pckernel.gc index 30159918a8..73eb25097c 100644 --- a/goal_src/jak1/pc/pckernel.gc +++ b/goal_src/jak1/pc/pckernel.gc @@ -105,17 +105,17 @@ (!= (pc-get-screen-rate -1) rate)) (set! (-> obj vsync?) #f)) (case rate + ((50) + (set! (-> obj target-fps) rate) + (set! (-> *setting-control* default video-mode) 'pal) + ) ((60) (set! (-> obj target-fps) rate) (set! (-> *setting-control* default video-mode) 'ntsc) ) - ((100) + (else (set! (-> obj target-fps) rate) - (set! (-> *setting-control* default video-mode) '100fps) - ) - ((150) - (set! (-> obj target-fps) rate) - (set! (-> *setting-control* default video-mode) '150fps) + (set! (-> *setting-control* default video-mode) 'custom) ) ) (set! (-> *setting-control* current video-mode) #f) @@ -411,7 +411,7 @@ (cond ;; green eco! - ((pc-cheats? obj eco-green) + ((pc-cheats? (-> obj cheats) eco-green) (when (or (= (-> *target* fact-info-target eco-type) (pickup-type eco-green)) (<= (-> *target* fact-info-target eco-level) 0.0)) (define-extern vent type) @@ -422,14 +422,14 @@ ) ) ;; red eco! - ((pc-cheats? obj eco-red) + ((pc-cheats? (-> obj cheats) eco-red) (when (or (= (-> *target* fact-info-target eco-type) (pickup-type eco-red)) (<= (-> *target* fact-info-target eco-level) 0.0)) (send-event *target* 'get-pickup (pickup-type eco-red) (-> *FACT-bank* eco-full-inc)) ) ) ;; blue eco! - ((pc-cheats? obj eco-blue) + ((pc-cheats? (-> obj cheats) eco-blue) (when (or (= (-> *target* fact-info-target eco-type) (pickup-type eco-blue)) (<= (-> *target* fact-info-target eco-level) 0.0)) (protect ((-> *target* event-hook)) @@ -440,7 +440,7 @@ ) ) ;; yellow eco! - ((pc-cheats? obj eco-yellow) + ((pc-cheats? (-> obj cheats) eco-yellow) (when (or (= (-> *target* fact-info-target eco-type) (pickup-type eco-yellow)) (<= (-> *target* fact-info-target eco-level) 0.0)) (send-event *target* 'get-pickup (pickup-type eco-yellow) (-> *FACT-bank* eco-full-inc)) @@ -449,18 +449,18 @@ ) )) - (when (pc-cheats? obj invinc) + (when (pc-cheats? (-> obj cheats) invinc) (logior! (-> *target* state-flags) (state-flags invulnerable)) ) ) - (if (pc-cheats? obj tunes) + (if (pc-cheats? (-> obj cheats) tunes) (set! (-> obj flava-hack) -1) (set! (-> obj flava-hack) 0) ) - (if (pc-cheats? obj sky) + (if (pc-cheats? (-> obj cheats) sky) (let ((date (new 'stack 'scf-time))) (scf-get-time date) (when (zero? (-> date stat)) diff --git a/goal_src/jak1/pc/progress-pc.gc b/goal_src/jak1/pc/progress-pc.gc index fa32e33736..5cc57de59a 100644 --- a/goal_src/jak1/pc/progress-pc.gc +++ b/goal_src/jak1/pc/progress-pc.gc @@ -1304,10 +1304,10 @@ ) ) (((game-option-type frame-rate)) - (case (-> *setting-control* default video-mode) - (('ntsc 'pal) (set! (-> *progress-carousell* int-backup) 0)) - (('100fps) (set! (-> *progress-carousell* int-backup) 1)) - (('150fps) (set! (-> *progress-carousell* int-backup) 2)) + (case (-> *pc-settings* target-fps) + ((60) (set! (-> *progress-carousell* int-backup) 0)) + ((100) (set! (-> *progress-carousell* int-backup) 1)) + ((150) (set! (-> *progress-carousell* int-backup) 2)) ) ) (((game-option-type language-subtitles)) diff --git a/scripts/batch/test-offline-and-update.bat b/scripts/batch/test-offline-and-update.bat index da477fac36..a1cd73f7f0 100644 --- a/scripts/batch/test-offline-and-update.bat +++ b/scripts/batch/test-offline-and-update.bat @@ -1,6 +1,6 @@ @echo off cd ..\.. -out\build\Release\bin\offline-test --dump-mode iso_data\jak1\ +out\build\Release\bin\offline-test -d --iso_data_path iso_data\jak1\ --game jak1 scripts\update_decomp_reference.py failures\ test\decompiler\reference\ RMDIR /Q/S failures pause \ No newline at end of file diff --git a/scripts/batch/test-offline.bat b/scripts/batch/test-offline.bat index 5f11e8525a..813102375a 100644 --- a/scripts/batch/test-offline.bat +++ b/scripts/batch/test-offline.bat @@ -1,4 +1,4 @@ @echo off cd ..\.. -out\build\Release\bin\offline-test iso_data\jak1\ +out\build\Release\bin\offline-test --iso_data_path iso_data\jak1\ --game jak1 pause \ No newline at end of file diff --git a/test/decompiler/reference/jak1/engine/target/target-part_REF.gc b/test/decompiler/reference/jak1/engine/target/target-part_REF.gc index 1c4631d9e7..78c9f8f7ed 100644 --- a/test/decompiler/reference/jak1/engine/target/target-part_REF.gc +++ b/test/decompiler/reference/jak1/engine/target/target-part_REF.gc @@ -2267,6 +2267,7 @@ ) ;; definition for function process-drawable-burn-effect +;; INFO: Return type mismatch rgbaf vs none. ;; Used lq/sq (defbehavior process-drawable-burn-effect target ((arg0 time-frame)) (sound-play "get-burned") @@ -2313,11 +2314,9 @@ 0 ) ) - (let ((v0-8 (-> (the-as process-drawable (-> s4-1 0)) draw color-mult))) - (set! (-> v0-8 quad) (-> s5-1 quad)) - v0-8 - ) + (set! (-> (the-as process-drawable (-> s4-1 0)) draw color-mult quad) (-> s5-1 quad)) ) + (none) ) ;; failed to figure out what this is: