HereInPlainSight / gshade_installer

GShade Installer / Updater Bash Script for Linux
GNU General Public License v3.0
59 stars 18 forks source link

Transition to ReShade status #27

Closed LetItGlow closed 6 months ago

LetItGlow commented 1 year ago

Since the Developer of GShade got banned and his GitHub got deleted, this script no longer works. You can archive this now. Good job for making this script.

HereInPlainSight commented 1 year ago

Good job for making this script.

Thank you. I kind of took a bit of a break from the internet for a few days, so I'm sorry this response is so late.

I'm going to update the readme that the script is broken (along with instructions on how to remove all GShade installs), but I've been juggling the idea of forking this into a reshade_installer instead. Unfortunately, there's some problems that've made that kind of update... a lot slower than I would have liked, so I'm just going to leave the repo un-archived for now to use this as a thread for discussion / suggestions.

Off the top of my head, the ReShade specific problems:

Things worth deciding if updating / converting the script:

I'll leave this repo unarchived so that this thread's open for feedback until I either finish the reshade installer or decide that the shaders / preset issues are a bit too far beyond me to resolve.

lwndow commented 1 year ago

I also want to thank you for making this. There's a need for reshade_installer on Linux to aide people in getting it going. This script can make it far easier to piece it together. Agreed that ReShade is far more splayed than GShade was, but perhaps we could include some cultivated presets/shaders (like Ipsusu, Project Crystal, etc), and an "include.d" directory that we could feed a URL to or something if they wanted to add to it through the installer. I'm invested, would help maintain.

EDIT: can redirect to https://github.com/marzent/reshade-on-unix/ as a short-term solution for now if it all feels like too much.

LetItGlow commented 1 year ago

Umm, I am not a pro, but I think you could "curl" or "git clone" them? You might have to add a check if "git" is installed.

I compiled a dirty list of the shaders so far.

https://github.com/crosire/reshade-shaders.git
https://github.com/CeeJayDK/SweetFX.git
https://github.com/martymcmodding/qUINT.git
https://github.com/FransBouma/OtisFX.git
https://github.com/BlueSkyDefender/AstrayFX.git
https://github.com/BlueSkyDefender/Depth3D.git
https://github.com/Fubaxiusz/fubax-shaders.git
https://github.com/Daodan317081/reshade-shaders.git
https://github.com/brussell1/Shaders.git
https://github.com/luluco250/FXShaders.git
# has odd structure
# https://github.com/Heathen/Pirate-Shaders.git
https://github.com/prod80/prod80-ReShade-Repository.git
https://github.com/originalnicodr/CorgiFX.git
https://github.com/TheGordinho/MLUT.git
https://github.com/LordOfLunacy/Insane-Shaders.git
https://github.com/Matsilagi/RSRetroArch.git
# has odd structure
# https://github.com/ConstantineRudenko/Shaders/tree/master/reshade/Shaders
https://github.com/LordKobra/CobraFX.git
https://github.com/Radegast-FFXIV/reshade-shaders.git
https://github.com/retroluxfilm/reshade-vrtoolkit.git
https://github.com/AlucardDH/dh-reshade-shaders.git
https://github.com/rj200/Glamarye_Fast_Effects_for_ReShade.git

so far this might work with git clone, depending on the folder structure inside the GitHuib Repo.

Plan B, is replace all instances of .git with /archive/refs/heads/master.zip and unpack them into one directory.

HereInPlainSight commented 1 year ago

Sorry, it's been a busy week at work -- I didn't get much of a chance to work on it much until tonight, a bit.

I figured out how to pull / restructure the repos directly off the wiki page, search for the shaders folder / texture folder, organize them, use a slightly-modified ReShade.ini file (to point to local directories), and slightly restructured the directory structure to be a bit less... multi-directory, at the base level. It's all in a new branch, reshade, if anyone's feeling brave.

That said, current results / status of various things, not specifically script-specific:

Script-specific problems / to-do's:

I'm not entirely sure where to go with MLUT. It looks like half the directory size is actually coming from being git cloned in the first place -- the textures and shader folders are 'only' 1.4G and 2.6M, respectively. To be fair, the textures are getting soft-linked to destinations when able, but the script still has failback code to copy files in case of soft links failing, for any reason.

Next steps, IMO, and feedback is welcome: Making include (/ blacklist?) directories for both shaders / presets, finding / deciding on curated (and working-with-available-shaders) presets.

Anyway, it's late. But, at least being able to pull in Shaders from the wiki feels like significant movement.

HereInPlainSight commented 1 year ago

Okay, so I'm dumb. While crosire apparently used the wiki to draft things in, he wasn't scraping the wiki to get the data. In fact, the data was just over here.

Strangely enough, a giant 3 gig repo isn't on the list.

So now we pull from that list instead. (We just grab all the RepositoryUrl=s and just git clone / git pull them. The script is not currently smart enough to deal with different branches. That really shouldn't be hard but I am kind of dumb and tired. It's something that should be fixed in the future when I'm feeling more... conscious.)

And now the script recognizes an include.d and a blacklist.d directory, which looks for .shader and .preset files in the expected way. It ignores lines that start with comments ( # ) in files. This has only been lightly tested but seeeems to work?

There's now a Custom directory in the preset and shader folders that never gets overridden / deleted.

After testing the include.d information with Ipsusu's repo (as both a .shader and a .preset include file), it was running into one of the issues in Ipsu's FAQ about having a second MLUT shader (from the FransBouma/OtisFX repo). So I added that URL to the blacklist.d folder.

And now... it seems to work. Worth noting, the blacklist.d folder is processed last, so it always wins.

Which makes the script... strangely and confusingly actually usable? It'll need users to manually add presets still as nothing's been made default. (I couldn't even find the mentioned Project Crystal.)

To do: Add the ability to work with git branches. THE TIME HAS COME! Remove WINEPREFIX from being necessary unless you're installing to an opengl game. Better user experience for presets.

LetItGlow commented 1 year ago

You did more work then the actual Ghade devs did by taking a Reshade shader, concat all commands into on line, add the atrociously slow TriDither.fx and call it "optimized" - AND SAVE IT BACK INTO shadersfolder under an different name.

Fun Fact, even if you remove the TriDither, the code is slower then the ReShade original. Anyway. Good job and thanks for working on it, even if you seem to have urgent private matters.

HereInPlainSight commented 1 year ago

Slow updates due to most of my house getting sequentially sick one by one. It's my turn, which is a miserable time for me, but means I had time to just sit and fix a few lingering things that've been bothering me.

At this point the script is usable (and basically finalized, if not super-well tested), but I really would like to have some example .preset / .shader files, and a file in the blacklist folder would be great, just as pure examples. However, the only repo I know of that fits the bill is Ipsusu's (needs a .shader, .preset, and to blacklist another repo, hits every checkmark) but it looks like there could be some licensing issues with just including those without permission... so when I'm feeling up to it (and I'm a massive introvert on a good day), I'll see about asking.

Once that's done, honestly... the script would probably be ready to be forked to another repo (after another shellcheck). It would be a little weird to keep a reshade installer script still under the gshade name. And the scripts, while sharing a chunk of code still, are significantly different at this point. By necessity, this version requires a bit more interaction from the user just to actually use it, since you have to find your own repos / zip archives for shaders / presets and make a file for each of them.

I still don't like that much, but I still have no better solution, as it stands.

For now, soup.

HereInPlainSight commented 6 months ago

Well, it's only had a testing pool of one, but, archiving this repo since the new repo's up. Feels weird to just transition this repo, anyway. This repo was about GShade, not ReShade.

Yes, it's been like a year. I got distracted by a shiny object.