[game] 150fps fixes (#1503)

* [game] 150fps fixes

* oops

* missed 1
This commit is contained in:
Brent Hickey
2022-06-21 15:20:32 -07:00
committed by GitHub
parent c13934708a
commit c188efff10
4 changed files with 46 additions and 9 deletions
+2 -2
View File
@@ -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)
+13 -2
View File
@@ -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)))))
)
)
)
+5
View File
@@ -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)
+26 -5
View File
@@ -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