-
Notifications
You must be signed in to change notification settings - Fork 41
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
[Guide] Steam Deck Guide and Unofficial Support #505
Comments
I guess what is happening is that the OS is loading the system version of the d3d8.dll files rather than ours. One easy way around this is to hack the sh2pc.exe file to have it load a modified file name, like d3dx.dll. Then rename the SH2EE d3d8.dll to d3dx.dll. This should force the game to load the SH2EE project. |
I quickly hacked the sh2pc.exe binary to make it load Here is the hacked version: sh2pc.zip |
That was incredibly fast. I'll run this as soon as I'm home. I'll report back with the results. If it works I'll upload a gameplay video. Another issue I am anticipating, I'm not sure what the supported resolutions are, but the SD is 16:10 1280x800. As long as the resolution doesn't default over that resolution then it should work, but if there's a way I can manually set it before launch that would be cool. Or could it be edited as a default resolution? Regardless, 1280x720 is great too. As long as it displays I know I can change it to something that will work |
With the latest update we detect the current screen resolution and use that. 1280x800 should work fine. I have tested other 16:10 resolutions without issue. |
I actually don't talk about this much but 16:10 is probably the best aspect ratio you can use for the game. When played in 4:3 you'll see letterboxes for the full screen images. At 16:10 these images fill the screen virtually perfectly without any cropping or letterboxes. 16:9 will crop the images some when set to fill. I always welcome playing the game at 16:10 over 4:3, if given the choice. |
That's actually really cool to hear. Seems like a good balance for a game designed with 4:3 in mind. So, potentially down the road the Deck could be a great way to play... one other benefit is consistent hardware. If it's working on one it's working on all of them. I digress. So I tested the hacked exe, and it didn't quite work. It definitely changed behavior. So you were right that it was probably bypassing your d3d8 file, but now when launched it displays a black screen, sometimes flickers white, but ultimately crashes. I tried it with multiple Proton versions and it was consistent on all modern versions from 6.0 to Experimental, including the Glorious Eggroll (GE) community update 7-10. I removed the d3dx files and tried the standard EE again and it actually wouldn't launch in desktop mode, would instantly crash. I had to launch in SteamOS and then it worked again. (non enhanced and only Proton Experimental, so the same as before.) I noticed one more thing though. When I launch the hacked EE exe in SteamOS it generates a d3dx.log which I will share here. |
As long as you're game I'm willing to test whatever, and I have all the time in the world. I'm currently home sick with covid. Would love to see official SD support on your next update. That would be an exciting add. I've been eager to find some minor contribution, so if I can be a tester that would be great. Oh, and the SD has official OBS support so I could screen capture and upload. One final note. Something that popped into my head. I had the performance overlay pulled up when the modified EE crashed, and the FPS, CPU, and GPU usage were all locked up, but I noticed that all cores were active. Not sure if that indicates an issue with setting single core affinity or if SteamOS itself was using those cores. I could definitely see that being a weak point though. Not sure how far down the pipe multicore support is. Sorry for rambling! |
What if you remove the DSOAL files? |
d3dx.log d3dx2.log They both crashed after a white screen. I'm running this in desktop mode. Also, I figured out that it was generating the log file in desktop mode, I'm just used to Windows 10 which updates files in realtime. Apparently in this flavor of Arch you need to refresh the folder to see newly generated files. |
I'm not sure if this is common knowledge, but SteamOS is an immutable OS, so it's protected from tampering. It can be disabled, but as soon as it updates it will overwrite any modified system files. Also the file structure is different from a Windows PC. The file structure shown in the log files is emulated, I think. The path to the Silent Hill 2 game folder is '/run/media/mmcblk0p1/steamapps/common/Silent Hill 2/'. Linux, Wine, and Proton are all fairly new to me, but I think the Steam Deck emulates a Windows file structure while running Proton. So referencing file paths can be tricky. Oh and "mmcblk0p1" is my microSD card. |
Ok. I saw another open issue where you guys mentioned a debug version of your d3d8 files. Presuming the only thing you changed in the exe is a reference to d3dx, I downloaded your latest debug files and renamed them to d3dx. Here's the resulting log. |
Some of the settings cannot be disabled. And there are hidden settings. Try using the below build. This should disable pretty much everything that can be disabled. Testing update: d3dx.zip |
It launches and works. I tried changing a couple of basic settings though and it no longer worked, then I changed them back to the way they were and it still wouldn't work. Then I noticed it's actually kind of a crapshoot whether it will launch. I thought this correlated with me changing ingame settings, changing ini settings, or something else, but I kept launching it over and over and the behavior was unpredictable. I changed these values: While these were set exactly this way I opened the game about 10-20 times without making any changes and about 1 in 4 times it would open and play fine. I had access to higher resolutions and the game was in widescreen and fullscreen, so I believe it was applying the settings from the ini. And now, strangely I've tried opening it another 20 times or so and it freezes every time. All of this testing has been done in desktop mode with an external monitor and kb/m. Using Proton Experimental. |
And now, without changing a thing, it's launching every time. Not sure if it was giving the machine a few minutes to recover or what, but it has launched 5 more times without issue. Each time I force closed it. The first time I properly exited the game it froze on startup the next time. I tried to replicate this and it wasn't possible. Now it appears to be about 50/50. |
Ok, very very interesting. I just went through the ini and enabled a ton of settings. On the 4th attempt it actually opened! |
Here's the game running on the Deck with the ini settings listed in the d3dx.log above Gameplay It runs really well! I have only been able to get it working in Desktop mode though. Here is a video of me closing the game, which is working, and reopening it only for it to hang on a white screen. White Screen |
Maybe message this person to see how they got it running? Perhaps he's found a way to have it consistently run? |
It looks like he's installed Windows, which is an option, but you sacrifice a lot of the benefits of the device when you switch to Windows. Suspend function no longer works, no overlay, and quite a bit of optimized features like Shader pre-caching. I got it running in SteamOS gaming mode and took screenshots while I played. Got to the apartments and everything seems to be in order. It's just the inconsistent startup. |
Intermittent issues like that are most likely related to a bug in the OS. But it is possible that it does not like what we do with the D3D8 wrapper. I added a new update. Try this one and see if this is reliable. It still has things disabled but if it works reliably then you can start to re-enable things one-by-one. Here is the update: d3dx.zip |
Not sure where to go from here. I'll try and pick up some more Proton knowledge. It's just weird that it will randomly work flawlessly. |
BTW: I forgot to mention: make sure that you delete any file called |
Ah I was wondering if that would matter. I'll give this a shot. |
I deleted the d3d8 files and tried the new d3dx files and no change. |
So, yeah the project works extremely well, when it works. Even the haptics provide simulated rumble. I couldn't ask for more. I noticed a funny visual artifact though. In the screenshot where you see newspapers on the floor, there is a dark texture of some kind that is cut off near the bottom of the screen. Could that be a 16:10 issue? |
I believe that proton can be made to generate log files. Tomorrow I'll see if I can get it to log what's happening when it succeeds and fails. |
I tried putting DSOAL files back into the game folder and messing with "HookDirectSound" which was turned off for testing. I was unable to get the game to launch with the DSOAL files in the directory. Just thought I would drop by and share what I've been able to enable that doesn't seem to affect the probability of the game launching. |
At the beginning trek, particularly near the save well, this is to be expected. It behaves like that on all versions.
With the next FMV Pack update the videos should fill basically perfectly in 16:10 without cropping.
I don't have this issue on my Nvidia setup. It looks to be some form of Z-fighting with the rendering. It might be an AMD issue? |
This is probably an AMD / Van Gogh issue. It's not particularly troubling. I noticed something very similar but haven't taken a screenshot - the blood pool under dead monsters seems to be hovering off the ground. It is clipping through the body from a distance, covering the legs but not quite reaching above the torso, but as I approach the body the blood pool appears to get closer to the floor. This is not a significant issue. I just launched the game with the DSOAL files in the game folder after adding launch parameters to the game. I do not know if this is the reason it launched properly, or if -again- it's all down to chance. I also ran the game in Proton 7.0.1, which is the current build, instead of the experimental build. That means that it actually will work on multiple versions of Proton... but it is still a game of chance. I haven't found very many people describing this type of issue on the Proton Github but I will create an issue there and link to this post. I am using the FULL EE project, the original d3dx files that @elishacloud shared with me (sorry for the pings, I just don't like to mention people without mentioning them). The only things I have disabled are what seems unnecessary or irrelevant to the Deck. I could always zip and share my folder though just in case I got something mixed up at some point. I've done a lot of testing and like I said, I'm home sick with covid so I'm not as sharp as usual. So, after all this I'm pretty sure it's confirmed that most of my troubleshooting was in vain. The project works almost in its entirety as-is. It just needs to hook into the appropriate DLL files. So, with the modified exe pointing to the provided d3dx files, it will launch intermittently. DSOAL is probably working because I added wine overrides as launch options, but again - I will double check if it will load without these launch options by launching it another 20 times or so. If these launch options are actually having a positive effect then I will also try a fresh, standard EE install and will only use the WINEDLLOVERRIDE parameter to include your modified DLL files (I'm referring to the d3d8.dll and related files that are bundled with EE). If that works, then we know the project "just works" (intermittently) as long as Proton is told to use your DLL files instead of its own. So all that would be left to troubleshoot is the dicey launch.That's a lot of ifs, and it would be easier to test if there was no probability involved. |
Ok, let's try and start fresh and troubleshoot things one-by-one.
Testing build: sh2pc.zip |
Thank you for the replying, so I restarted the game today changed nothing from yesterda, just to see what would happen. Now I have no issues at all, saving works without crashing. Game looks and runs great (I'm playing it in the PC as well, my intention was transfer save file to and from PC and Dec). I'll play more tomorrow, try and finished the game within the next week. Just wanted to say thank you, to you and the team. You guys have done an incredible job. |
@elishacloud Thanks for all the hard work Elisha! It still isn't working for me unfortunately. Just to make sure I have the correct steps:
Been trying all other solutions on this thread and still coming up short :( |
@JaceyRiley I am able to start a new game. |
@Matt1412 Okay cool, will check this out shortly and report back. Thanks for the link! |
i did a fresh install of Silent Hill in Windows and copied the files into the Steam Deck. Previously I copied from Windows the Silent Hill 2 directory after running SH2EEsetup.exe. Cannot launch SH2EEsetup.exe: Can launch SH2EEsetup.exe: |
@Matt1412 don't forget to force a compatibility mode in Steam, for me it worked just fine with Proton Experimental. |
@ZazaLeNounours |
@JaceyRiley If you cannot enable the checkbox, remove the game from Steam client and Add to Steam i select SH2EEsetup.exe to Add to Steam. |
So following the above steps (and after using the new dinput8.dll file), this is how the game is loading for me: This is after I've run the SH2EE Setup tool. |
@JaceyRiley |
I personally didn't have to use ProtonGe to make it work. Did you try, after the install with EEsetup.exe, to replace the shortcut of EEsetup.exe in Steam by sh2pc.exe, instead of adding a new one ? |
@Matt1412 So I installed GE-Proton GE-Proton7-49 and tried using that as the compatibility layer, no luck there either. @ZazaLeNounours , you mean like this right? This is actually how I originally installed and ran SH2EE. But it looks like it doesn't even open the program when I take this route. It was working perfectly fine before the last update, but I'm not sure why it seems to be working for some and not others. I do have Visual C++ installed on my Deck (needed to run another fan project that was made using the Unreal engine), but I don't think this should interfere with the operation of other programs? Could be wrong, but I just assumed. All my other programs seem to be running okay. |
@JaceyRiley yeah, it seems to be okay. But I was having the same problem before I added the .dll provided by Elisha (https://github.com/elishacloud/Silent-Hill-2-Enhancements/files/10864688/dinput8.zip) to the game's folder, which completely fixed the issue for me. Maybe you should start again : remove everything EE related (EEsetup.exe can do that), restart a complete installation of EE (including Xidi) and then add the .dll. If it's still not working after that, well I'm out of ideas, sorry :( |
@ZazaLeNounours @JaceyRiley |
Don't know if this makes a difference or not but I was having issues launching the game, until I used DLL dinput8.zip (provided Elisha). I also have this written in to the launch options box, as per the guide instructions, link at the bottom. LAUCH OPTIONS STEAM_COMPAT_MOUNTS=/run/media/mmcblk0p1/ %comman% I found that restarting the deck after adding the new dll, helped. |
Oh my god, FINALLY. I finally got it up and running! The only step I revised was restarting my Deck. Thank you SO much for that suggestion @Volantex. Thanks everyone who helped me troubleshoot this bad boy! Also, @Volantex , that line that you cited: STEAM_COMPAT_MOUNTS=/run/media/mmcblk0p1/ %command% May only applicable when you're running the game from an SD card. I'm just running it straight from my SSD to be safe. Thanks again! |
If anyone is having troubles launching the game after install, try removing spaces from the game directory name. Renaming The game launches, but I can't make the controller work properly. The bindings are wrong, |
I managed to fix the controller issues by adding a library override for |
Hoping to get some help and followed steps of @JaceyRiley and @ZazaLeNounours
The EE setup works without issue, but SH2 doesn’t launch from steam either by desktop or gaming mode. Only way it works is by clicking on the exe itself in folder which prompts protontricks to ask for a wine prefix, then launching when I select the steam entry. When it does launch then custom steam input profiles don’t work, and game pad is not properly detected. I followed all of @akrylysov advice changing folder name, dinput8 library override even though it comes default at this point, and selecting Dinput in config file So, now issues are
Hoping anyone can help walk me through it since it’s been a couple months since last update and something might have changed/broken PS I tried this with and without the most recent dll update here |
@PRN-oss so sorry for the late reply on this. Did you end up getting it to work? |
Hi. So I got it up and running on my steam deck, but I have 2 major problems:
|
Not sure about your first point, but for the second one, you can safely cap the TDP at 5 or 6W and it will run just fine, even at 60 FPS. |
Kk, thanks. Hoping to find a way to turn off safe graphics mode. |
Safe graphics mode likely means that you are not running the Enhanced Edition at all. Can you check the log file and see if a log file is being created or updated on launch? |
OK, that's what worked out for me. |
Edit: @raravan 's solution is working. Thanks a lot! My issue was: I ran the setup on my windows laptop where starting the sh2pc.exe starts the enhanced version. On my Steam Deck unfortunately only the Directors Cut version starts. I replaced the dll, tried proton 8.25 and 7.06 (it only starts with 7.06) but it just starts the Directors Cut and completely ignores the EE version. My folder structure is definitely right. Anyone here able to help me? Trying for hours to troubleshoot this |
So I followed everything on here and now when the game boots up, it asks me if I want to update the game. I'm unable to select yes or no in game or desktop mode, and when I try to update it with the setup tool in my SH2 directory, it says my files are all up to date. I've also booted up the config tool and disabled the auto update module, but the issue still persists. Any help would be greatly appreciated. |
See here in the below thread for the SHS2EE Guide for the Steam Deck.
Hey everyone. I checked all the issues, open and closed, and I didn't see any mention of the possibility of SH2EE working on the Steam Deck. I'd love to hear whether or not you have any plans in this regard. Not sure if any of the devs have a Steam Deck or plan on getting one, but I'd be thrilled to play SH2EE on the Deck without having to sacrifice the OS and try and dual boot Windows.
I was a Q1 week 2 recipient of the SD and I've really been enjoying it so far. I was curious whether this would "just work" as a lot of games have. I have Silent Hill 2 on the Deck and installed your enhancements just to see how things go. The good news is that Silent Hill 2 - using your exe - works out of the box using "Proton Experimental", but no enhancements are active. I am able to play and use the built in controller (I believe it's emulating keyboard/mouse), but it is in a completely pre-EE state, including the audio loop bug and 4:3 aspect ratio.
When I use any other version of Proton, I've tried all of them, I either get an unresponsive white screen that hangs until I force close the game, or an instant CTD or crash to SteamOS depending on which mode I'm in. Performance is the same in desktop and SteamOS.
I'm curious if anyone has any insights as to how the project interacts with the exe and why it might not be having the intended effect.
I know my best hope is that someone in charge has a great deal of interest in the Deck or is planning on getting one themselves. That being said, I am willing to do any testing, share files, explain what's happening, post videos, screenshots, or anything else that might be helpful. This might not be something totally necessary for SH2EE, but having it run on the Deck would be a dream.
The text was updated successfully, but these errors were encountered: