Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Chimera 0.40.202 FPS Throttle #301

Open
BinToss opened this issue Apr 11, 2022 · 3 comments · May be fixed by #286
Open

Add support for Chimera 0.40.202 FPS Throttle #301

BinToss opened this issue Apr 11, 2022 · 3 comments · May be fixed by #286
Assignees
Labels
enhancement New feature or request p:LOW Low Priority

Comments

@BinToss
Copy link
Member

BinToss commented Apr 11, 2022

nToss — 01/23/2021

So I was proven wrong when arguing about the ancient Chimera version we use
It turns out
It does have framerate throttle
image

nToss — 01/24/2021

I still haven't figured out where Chimera-202 saves the framerate throttle setting
Kava said it's supposed to save to chimera.bin, but the file was unchanged each time changed the throttle.
and the throttle is saved after closing the game and loaded when starting the game

Miris Wisdom — 01/24/2021

0xB5 is the chimera fps throttle (seems to vary depending on whether the value is, e.g. 15 vs 59.99 -- also can't confirm if other values are applied in the binary as an invisible side effect)
but on the positive note, the fps throttle is absolutely saved in the chimera.bin. i'll have a look again more closely soon

Miris Wisdom — 01/24/2021

figuring out how the number is encoded will be interesting

Miris Wisdom — 02/09/2021

there was a super epic time where i had a struct of the chimera we use and could therefore know how the chimera_fps_throttle is stored

@BinToss BinToss self-assigned this Apr 11, 2022
@BinToss BinToss linked a pull request Apr 11, 2022 that will close this issue
@BinToss BinToss changed the title Add support for Chimera 0.43.0 FPS Throttle Add support for Chimera 0.40.202 FPS Throttle Apr 11, 2022
@BinToss BinToss added p:LOW Low Priority enhancement New feature or request labels Apr 11, 2022
@BinToss
Copy link
Member Author

BinToss commented Apr 11, 2022

ArecadianFox provided some FPS values via labelled chimera.bin configs
https://docs.google.com/spreadsheets/d/1_bDBeSsxGjLbN4aA6p-mduVEnNB9qOMog_kpjCVRYCY/edit?usp=sharing

@BinToss
Copy link
Member Author

BinToss commented Dec 25, 2023

C# floats (Half, Single, Double, Decimal) are bit-masked slightly different than C/C++ floats (float, double).
See System.Runtime.InteropServices.NFloat

@BinToss
Copy link
Member Author

BinToss commented Jan 14, 2024

Something I recently learned is Chimera's FPS throttle is exactly that—a throttle. Sure, it limits the max FPS, but it does so by making the main thread sleep.
While sleeping, no user input is registered and processed which leads to perceived input latency.

What we should do is uncap FPS and then use/encourage driver- or software-based¹ framerate limiting. In fact, V-Sync alternatives (e.g. Fast Sync, Adaptive Sync (maybe), FreeSync, G-Sync, et cetera) would be preferable.

¹ SpecialK offers a framerate limiter, but I can't promise it doesn't introduce significant input latency.

See SnowyMouse/chimera#106 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request p:LOW Low Priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant