Compare commits
8 Commits
Author | SHA1 | Date |
---|---|---|
Julian | a99e083ce7 | |
Julian | e407af4d98 | |
Julian | 98e882eb11 | |
Julian | 4bec7d8198 | |
Julian | 9abd399115 | |
Julian | 98dbd192a1 | |
Julian | db9f09a0b2 | |
Julian | f8cd0c3449 |
|
@ -491,7 +491,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "geezshade"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"copypasta",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
name = "geezshade"
|
||||
description = "Automated ReShade setup for FFXIV with GShade presets"
|
||||
authors = ["NotNite <hi@notnite.com>"]
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
|
|
31
README.md
31
README.md
|
@ -1,9 +1,36 @@
|
|||
# GeezShade
|
||||
|
||||
Automated ReShade setup for FFXIV with GShade presets.
|
||||
Automated ReShade setup for FFXIV with GShade presets. Make backups before using this - no stability guarantees.
|
||||
|
||||
[CLICK ME TO INSTALL IT](https://git.n2.pm/NotNite/geezshade/releases/latest)
|
||||
**Note: This is broken, and likely will remain broken. Use [this](https://git.n2.pm/NotNite/DeezShade) instead.**
|
||||
|
||||
[CLICK ME TO INSTALL IT](https://git.n2.pm/NotNite/geezshade/releases/latest).
|
||||
|
||||
## Why?
|
||||
|
||||
I felt like it.
|
||||
|
||||
## How?
|
||||
|
||||
ReShade's installer is just a weird .zip file and GShade is just reskinned ReShade with barely any new features. Almost every single shader I've tested works fine on ReShade.
|
||||
|
||||
Specifically, it goes through the following steps:
|
||||
|
||||
- Fetch information about the latest release of ReShade and GShade from [a metadata file](https://notnite.com/geezshade.json)
|
||||
- Download [ReShade](https://reshade.me/#download) with full add-on support and extract it
|
||||
- Download [GShade shaders](https://github.com/Mortalitas/GShade) and extract them
|
||||
- Download [GShade presets](https://github.com/Mortalitas/GShade-Presets) and extract them
|
||||
|
||||
I am not rehosting any of the shaders or presets. The download process uses the GitHub API and the ReShade CDN. These are open to the Internet for anyone to download in two clicks - it's just been automated here.
|
||||
|
||||
Note that for a short period of time after releasing this, ReShade's CDN went offline and I switched to a rehost for a few hours.
|
||||
|
||||
## Help, something's broken
|
||||
|
||||
If it's with the installer - email me! `geezshade@(my username).com`
|
||||
|
||||
If it's with ReShade or the shaders - don't waste your time. GShade provides no guarantees their shaders will work on ReShade.
|
||||
|
||||
## I want to contribute
|
||||
|
||||
This Forgejo instance doesn't have signups enabled. Email me a patch file (see above).
|
||||
|
|
39
src/main.rs
39
src/main.rs
|
@ -65,18 +65,35 @@ fn get_gshade_presets(xiv_install: PathBuf, config: GeezShadeConfig) -> anyhow::
|
|||
let shaders_zip = zip::ZipArchive::new(Cursor::new(gshade_shaders))?;
|
||||
let presets_zip = zip::ZipArchive::new(Cursor::new(gshade_presets))?;
|
||||
|
||||
let shaders_folders = vec![
|
||||
"GShade-master/Textures",
|
||||
"GShade-master/Shaders",
|
||||
"GShade-master/ComputeShaders",
|
||||
];
|
||||
let presets_folders = vec!["GShade-Presets-master/FFXIV"];
|
||||
let shaders_folder_name = shaders_zip
|
||||
.file_names()
|
||||
.next()
|
||||
.unwrap()
|
||||
.split('/')
|
||||
.next()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
|
||||
let presets_folder_name = presets_zip
|
||||
.file_names()
|
||||
.next()
|
||||
.unwrap()
|
||||
.split('/')
|
||||
.next()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
|
||||
let shaders_folders = vec!["Textures", "Shaders", "ComputeShaders"]
|
||||
.iter()
|
||||
.map(|x| format!("{}/{}", shaders_folder_name, x))
|
||||
.collect::<Vec<String>>();
|
||||
let presets_folders = vec![format!("{}/FFXIV", presets_folder_name)];
|
||||
|
||||
let dir = xiv_install.join("reshade-shaders");
|
||||
|
||||
println!("extracting presets");
|
||||
extract(dir.clone(), shaders_zip, shaders_folders.clone())?;
|
||||
extract(dir, presets_zip, presets_folders.clone())?;
|
||||
extract(dir.clone(), shaders_zip, shaders_folders)?;
|
||||
extract(dir, presets_zip, presets_folders)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -84,7 +101,7 @@ fn get_gshade_presets(xiv_install: PathBuf, config: GeezShadeConfig) -> anyhow::
|
|||
fn extract(
|
||||
dir: PathBuf,
|
||||
presets_zip: ZipArchive<Cursor<Vec<u8>>>,
|
||||
presets_folders: Vec<&str>,
|
||||
presets_folders: Vec<String>,
|
||||
) -> anyhow::Result<()> {
|
||||
for filename in presets_zip.file_names() {
|
||||
for folder in &presets_folders {
|
||||
|
@ -216,7 +233,7 @@ fn main() -> anyhow::Result<()> {
|
|||
Ok(config) => config,
|
||||
Err(e) => {
|
||||
show_error(
|
||||
"An error occured trying to fetch information required for GeezShade.",
|
||||
"An error occured trying to fetch information required for GeezShade. This may be because you are offline, the server is down, or the installer is critically out of date.\nTry downloading the latest version at https://notnite.com/geezshade or try again later.",
|
||||
format!("{:?}", e),
|
||||
);
|
||||
|
||||
|
@ -253,7 +270,7 @@ fn main() -> anyhow::Result<()> {
|
|||
}
|
||||
|
||||
if let Err(e) = do_the_thing(xiv_install.to_path_buf(), config) {
|
||||
show_error("An error occured.", format!("{:?}", e));
|
||||
show_error("An error occured setting up ReShade.", format!("{:?}", e));
|
||||
|
||||
return Err(e);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue