alt_enter_fix/src/main.rs
tommy 52359bfeeb
All checks were successful
Rust / build (push) Successful in 1m55s
dynamic fps cap! (dewb)
2024-08-29 17:55:40 -04:00

61 lines
2.6 KiB
Rust

use std::{env, fs, io::{self, stdin, Read, Write}, path::Path};
fn main() {
let mut rblxpath = String::new();
if let Some(lad) = env::var("LOCALAPPDATA").ok() {
let temprbx_lad = format!("{}\\Roblox", lad);
if Path::new(&temprbx_lad).is_dir() {
rblxpath = temprbx_lad;
}
} else if let Some(pfx86) = env::var("ProgramFiles(x86)").ok() {
let temprbx_pfx86 = format!("{}\\Roblox", pfx86);
if Path::new(&temprbx_pfx86).is_dir() {
rblxpath = temprbx_pfx86;
}
}
if rblxpath != "" {
println!("Found path: {}", rblxpath);
} else {
println!("Roblox not found (Die)");
return;
}
println!("What FPS would you like to cap the fps to? (0 for no cap at all)");
let _ = io::stdout().flush();
let mut input = String::new();
stdin().read_line(&mut input).expect("invalid input, try again");
if let Some('\n')=input.chars().next_back() {
input.pop();
}
if let Some('\r')=input.chars().next_back() {
input.pop();
}
let fps = input.parse::<i32>().unwrap();
let desired_fps = match fps {
0 => 5588562,
_ => fps
};
println!("fps cap will be set to {desired_fps}");
let just_make_this_work = format!("{{\"FFlagHandleAltEnterFullscreenManually\":\"False\",\"DFIntTaskSchedulerTargetFps\":{desired_fps},\"FFlagEnableInGameMenuChromeABTest3\":\"False\",\"FFlagGameBasicSettingsFramerateCap5\":\"False\",\"FFlagTaskSchedulerLimitTargetFpsTo2402\":\"False\"}}");
let fflag_contents = just_make_this_work.as_str();
let versions = format!("{}\\Versions\\", rblxpath);
for folder in fs::read_dir(versions).unwrap() {
let cur_folder = folder.unwrap().path().display().to_string();
if cur_folder.to_lowercase().contains("version") {
let executable = format!("{}\\RobloxPlayerBeta.exe", cur_folder);
if Path::new(&executable).is_file() {
let cs_folder = format!("{}\\ClientSettings", cur_folder);
if !Path::new(&cs_folder).is_dir() {
fs::create_dir(&cs_folder).ok();
println!("Created ClientSettings folder in {}", cur_folder);
} else {
println!("ClientSettings folder already exists in {}", cur_folder);
}
let cas_json = format!("{}\\ClientAppSettings.json", cs_folder);
fs::write(cas_json, fflag_contents).ok();
println!("Wrote ClientAppSettings.json to {}", cur_folder)
}
}
}
println!("Press enter to exit");
let _ = io::stdin().read(&mut [0u8]).unwrap();
}