diff --git a/goal_src/engine/draw/drawable.gc b/goal_src/engine/draw/drawable.gc index 3068e0b9e1..ccf9200421 100644 --- a/goal_src/engine/draw/drawable.gc +++ b/goal_src/engine/draw/drawable.gc @@ -1337,9 +1337,9 @@ ;; this counts actual frames, not seconds. Will count 2 frames if we lag ;; When counting frames while running at > 60fps we need to scale it, but always count at least 1 frame (+! (-> disp integral-frame-counter) (if (= (-> *setting-control* current video-mode) '150fps) - (min 1 (the int (+ 1 (* 0.4 time-ratio)))) + (max 1 (the int (* 0.4 time-ratio))) (if (= (-> *setting-control* current video-mode) '100fps) - (min 1 (the int (+ 1 (* 0.6 time-ratio)))) + (max 1 (the int (* 0.6 time-ratio))) (the int time-ratio)))) ;; this counts actual frames, not doubling for lag. Will count 1 per frame drawn (+! (-> disp actual-frame-counter) 1) diff --git a/goal_src/engine/gfx/eye.gc b/goal_src/engine/gfx/eye.gc index a331dad64a..bf8a135f23 100644 --- a/goal_src/engine/gfx/eye.gc +++ b/goal_src/engine/gfx/eye.gc @@ -832,7 +832,13 @@ (when (not (paused?)) (cond ((and (>= (-> s5-3 left lid) 0.0) (>= (-> s5-3 right lid) 0.0)) - (set! (-> s5-3 random-time) (the-as uint 60)) + (set! (-> s5-3 random-time) (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) + (the-as uint 60)))) (set! (-> s5-3 blink) 0.0) ) (else @@ -841,7 +847,12 @@ (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 (rand-vu-float-range 60.0 240.0)))) + (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))))) ) ) ) diff --git a/goal_src/engine/load/loader.gc b/goal_src/engine/load/loader.gc index f503b02e0f..68b1c635ee 100644 --- a/goal_src/engine/load/loader.gc +++ b/goal_src/engine/load/loader.gc @@ -972,6 +972,11 @@ (string= (-> arg0 name) "eichar-ambient-2") (string= (-> arg0 name) "eichar-ambient-3") (string= (-> arg0 name) "eichar-ambient-4") + (string= (-> arg0 name) "fishermans-boat-ride-to-village1-alt") + (string= (-> arg0 name) "fishermans-boat-ride-to-village1") + (string= (-> arg0 name) "fishermans-boat-ride-to-misty") + (string= (-> arg0 name) "gondola-ride-up") + (string= (-> arg0 name) "gondola-ride-down") ) ) (if (= (-> *setting-control* current video-mode) '150fps) 0.4 0.6) diff --git a/goal_src/engine/target/target.gc b/goal_src/engine/target/target.gc index 406a1f0e03..9f655ccbf5 100644 --- a/goal_src/engine/target/target.gc +++ b/goal_src/engine/target/target.gc @@ -809,7 +809,12 @@ ) (until (ja-done? 0) (suspend) - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control unknown-float01)) (-> *display* seconds-per-frame)) + ;; 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)) + 0.016666668 + (-> *display* seconds-per-frame))) (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) ) ) @@ -879,7 +884,11 @@ (set! f30-0 (seek f30-0 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control unknown-float01))))) - (* 2.0 (-> *display* seconds-per-frame)) + ;; Jaks' walk animation felt sped up in > 60fps. I'm thinking it shouldn't be tied to seconds-per-frame but I'm not positive + (* 2.0 (if (or (= (-> *setting-control* current video-mode) '150fps) + (= (-> *setting-control* current video-mode) '100fps)) + 0.016666668 + (-> *display* seconds-per-frame))) ) ) (let ((v1-317 (-> self skel effect))) @@ -2394,7 +2403,13 @@ (seek! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length) - (* 245760.0 (-> *display* seconds-per-frame)) + (* 245760.0 (if (or (= (-> *setting-control* current video-mode) '150fps) + (= (-> *setting-control* current video-mode) '100fps) + ) + 0.016666668 + (-> *display* seconds-per-frame) + ) + ) ) ) (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) @@ -2726,9 +2741,15 @@ (lambda ((arg0 target)) (let ((f0-3 (seek (-> arg0 control root-prim local-sphere w) (the-as float 28672.0) - (* 286720.0 (-> *display* seconds-per-frame)) + (* 286720.0 0 (if (or (= (-> *setting-control* current video-mode) '150fps) + (= (-> *setting-control* current video-mode) '100fps) + ) + 0.016666668 + (-> *display* seconds-per-frame) + ) + ) ) - ) + ) ) (set! (-> arg0 control root-prim local-sphere w) f0-3) f0-3