Open umbrellacorp53 opened 2 years ago
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 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 d3dx.dll
rather than d3d8.dll. I also included the latest build already renamed. Try using this binary rather than the other to see if it will now load the SH2EE project and all the updates.
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
Another issue I am anticipating, I'm not sure what the supported resolutions are, but the SD is 16:10 1280x800.
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.
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. d3dx.log
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? http://enhanced.townofsilenthill.com/SH2/troubleshoot.htm#directoryTree
d3dx.log Here's the log with basically all options set to 0, and with DSOAL files deleted.
d3dx2.log Here's the log with a brand new d3dx.ini at default settings, and with DSOAL files deleted.
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. d3dx.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: ScreenMode = 3 DynamicResolution = 1 WidescreenFix = 1 d3d8to9 = 1
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. Here's the latest log file. d3dx.log
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! High resolution, adjusted toilet geometry, zoomed in cutscene, blur working. That's what I noticed. Here is the d3dx.log: d3dx.log
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? https://www.youtube.com/watch?v=RLriROG890Q
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 d3d8.dll
from the game's folder. Files with that name could interfere with the functioning of this update.
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.
Various screenshots to verify what is working. This is from earlier when I enabled mostly everything.
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.
Fullscreen images and hd text on menus. Replaced cursor.
HD fullscreen maps.
Inventory items and hd menu
Enhanced videos, nearly fits perfectly on 16:10 as @Polymega said.
Geometry corrections applied. Effects restored, and I think the camera is adjusted appropriately? Also, film grain is working. Although on the small screen I kinda liked the oversized grain.
Fog looks thick. Occasionally seems to spawn in small white clusters, then disperses. Not sure if that's expected. This is not a good screenshot to demonstrate that. Think of an almost rectangular white cloud popping into existence then whisping in all directions.
Large HDD info correctly displayed.
Two images showing the weird line at the bottom of the screen where it seems some overlayed textures are clipping or a sceenspace effect is not reaching the bottom of the screen.
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. I also no longer have sound. Not sure how I can fix that. Standard audio is working, just no DSOAL unfortunately.
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.
Occasionally seems to spawn in small white clusters, then disperses. Not sure if that's expected.
At the beginning trek, particularly near the save well, this is to be expected. It behaves like that on all versions.
Enhanced videos, nearly fits perfectly on 16:10 as @Polymega said.
With the next FMV Pack update the videos should fill basically perfectly in 16:10 without cropping.
Two images showing the weird line at the bottom of the screen where it seems some overlayed textures are clipping or a sceenspace effect is not reaching the bottom of the screen.
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?
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.
WINEDLLOVERRIDES="dsound=n,b" && WINEDLLOVERRIDES="dsoal-aldrv=n,b" %command%
(The '&&' might not be necessary or the right format now that I think about it)
I do not know if this is the reason it launched properly, or if -again- it's all down to chance. I'm not sure the easiest way to check that DSOAL is working properly, but in the parking lot on the pier at the start of the game it sounded as though my footsteps were louder as I approached the camera. It still seemed as though stepping onto the sidewalk cuts the footsteps out instead of fading them sometimes though.
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. That being: CheckCompatibilityMode = 0 CheckForAdminAccess = 0 DisableScreenSaver = 0
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.
DSOAL is probably working because I added wine overrides as launch options
Ok, let's try and start fresh and troubleshoot things one-by-one.
Testing build: sh2pc.zip
I deleted everything and started with a clean folder, standard Proton, no launch options. Totally vanilla. With the sh2pc.exe and d3dx.dll provided it has the same issue.
However, if I use a nocd crack exe it launches 100% of the time. I can provide the exe file or the checksum in whatever format.
I can provide the exe file or the checksum in whatever format.
Yes, please provide me with the cracked exe file.
It was generated with something called "Silent Hill 2 Modern Compatibility Fix"
Ok, try this update.
Testing build: sh2pc.zip
Can you try re-installing SH2 cleanly and then run the patch above? It appears like you are missing a bunch of files. Below are all the files from your log:
336 18:20:54.047 |--------------------------------
336 18:20:54.047 |-
336 18:20:54.047 |- Directory of "E:\steamapps\common\Silent Hill 2 Enhanced Edition"
336 18:20:54.047 |-
336 18:20:54.047 |- 02/08/2021 01:38 PM <DIR> data
336 18:20:54.047 |- 06/25/2002 09:50 AM 358,963 binkw32.dll
336 18:20:54.047 |- 04/08/2022 02:34 PM 4,230,144 d3dx.dll
336 18:20:54.047 |- 04/08/2022 02:30 PM 16,887 d3dx.ini
336 18:20:54.047 |- 04/08/2022 06:20 PM 6,076 d3dx.log
336 18:20:54.047 |- 07/25/2002 11:02 AM 77 Konami Homepage.url
336 18:20:54.047 |- 01/05/2002 12:40 PM 487,424 msvcp70.dll
336 18:20:54.047 |- 06/07/2001 12:14 PM 339,968 msvcr70.dll
336 18:20:54.047 |- 11/20/2002 02:36 PM 37,303 ReadmeDC.htm
336 18:20:54.047 |- 11/20/2002 02:36 PM 15,710 ReadmeDC.txt
336 18:20:54.047 |- 08/16/2002 03:44 PM 2,238 sh2.ico
336 18:20:54.047 |- 11/20/2002 02:36 PM 28,111 SH2DClogo.JPG
336 18:20:54.047 |- 04/08/2022 02:23 PM 5,476,352 sh2pc.exe
336 18:20:54.047 |--------------------------------
You can reference the directory tree to help with this. You'll want all the grey files seen in this tree. (Note that some of these grey files aren't created until the game launches for the first time. They are marked as such on the tree.)
http://enhanced.townofsilenthill.com/SH2/troubleshoot.htm#directoryTree
I've tried everything and I cannot get it to generate a local.fix file. Everything else listed in grey in the file tree I've generated. I used another no-cd exe which also works 100%. It was the only way to get it to generate the missing files. Here is that exe sh2pc.zip .
I put the d3dx.dll, d3dx.ini, and sh2pc.exe that you shared into the folder, overwriting the no-cd sh2pc.exe. It displayed a black screen > white screen > black screen > then crashed. This behavior is consistent.
Oh and it generated the local.fix just now using your exe. Here is the log: d3dx.log
local.fix
isn't required, if I'm remembering correctly, so I think you're okay there. I also didn't take a proper look at the files Elisha listed from your log, but you were good to go with what you had in there, in terms of vanilla files.
It's interesting a No-CD executable you found is working. The executable we provide on our site is also a No-CD one, we just call it "Enhanced Executable" to make it not obvious we're suppling a 'cracked' binary. (Although is it really considered 'cracked' in this day-and-age when Windows will literally refuse to run it with SecuROM DRM?)
local.fix
isn't required, if I'm remembering correctly, so I think you're okay there. I also didn't take a proper look at the files Elisha listed from your log, but you were good to go with what you had in there, in terms of vanilla files.
Ok, cool. Yeah I actually have acquired the "vanilla" files from two different sources and everything looks consistent. I know I had a physical copy of the game about 15 years ago. It came in a massively oversized box. I really wish I had kept that box. I legally own the game (multiple times over).
It's interesting a No-CD executable you found is working. The executable we provide on our site is also a No-CD one, we just call it "Enhanced Executable" to make it not obvious we're suppling a 'cracked' binary. (Although is it really considered 'cracked' in this day-and-age when Windows will literally refuse to run it with SecuROM DRM?)
To be honest, all of this would be so much simpler if Konami wasn't Konami and they would just accept the FREE MONEY and let someone upload SH2 and 3 on GOG and/or Steam. What a hassle having to deal with physical media or random shoddy sites when there are people who would happily throw yet another $10-30 at them for the same game again, without any additional effort. They could literally hand an intern a flash drive and make free money that afternoon.
But yeah I have actually tried 2 different executables that launch the game without issue, they just don't have any of the benefits of the EE. I've uploaded both for you guys to peruse.
But yeah I have actually tried 2 different executables that launch the game without issue, they just don't have any of the benefits of the EE. I've uploaded both for you guys to peruse.
So as far as the collective SH community knows, there only exists three versions of the SH2 PC executable:
Are you meaning that the two executables you found on the web don't work at all with our project? They don't "talk" at all with d3d8.dll/d3dx.dll? If so, that likely means one of two things:
Are you meaning that the two executables you found on the web don't work at all with our project? They don't "talk" at all with d3d8.dll/d3dx.dll? If so, that likely means one of two things:
I actually did not try their executables with your files in the game directory. I assumed that your exe was modified to look for your files. I'll try it now.
However, there was early speculation that the issue was calling the d3d8.dll that was built into Proton instead of the one you guys provided. I gotta slow down.
I tried both of the no-cd EXE files that I posted above while the EE files were in the folder. The game consistently launches but does not use any of your files.
I added a simple launch parameter WINEDLLOVERRIDES="d3d8=n" %command%
and the game would no longer launch.
I can try launching it another dozen times and see if it eventually launches.
The game consistently launches but does not use any of your files.
Make sure you're using the d3d8.dll
version of the project files for your tests here, and not the d3dx
versions. Elisha had to modify the binary to use d3dx
instead, whereas d3d8
will be read/used out of the gate.
Yeah, I did a completely standard installation. Vanilla game + the regular EE files from your main site. The only difference is I tried out the exe files that work 100% of the time.
They bypass EE and run the game vanilla. I think it's hooking into a d3d8.dll that exists within Proton even with your dll in the game directory. So, that's why he modified the exe and renamed the dll files in the first place.
Wine and Proton are both open source and on github. Might be possible to figure out what their d3d8.dll looks like. I'm in over my head though.
I think too much may be changing in each test to isolate the issue. Let's try and make less changes and see what happens Try this:
New testing files: sh2pc.zip
I think too much may be changing in each test to isolate the issue. Let's try and make less changes and see what happens
Apologies. To be clear, all of the troubleshooting flailing that I did after your previous comment I did in a separate install folder. I still have a totally clean and working vanilla install.
- Get the game working without EE and make sure it is working 100% of the time.
Got it. The game launches without issue 100% of the time. Vanilla install. As long as I use one of the two no-cd EXE files that I shared with you.
- Once it is working good then download the files below and overwrite any existing files and try it with these files only.
Alright. placed the contents of the zip into the game folder. It launches 100% of the time. Tried 5 times and it worked all 5 times!
Only oddity is that it takes a considerable amount of time to launch. 5 seconds before it pops up > 4 seconds black screen > 5 seconds white screen > then the Konami logo fades in on a black screen. Doesn't bother me, just letting you know how the behavior has changed. I actually thought it wouldn't launch because of the different "phases", but after waiting through it each time it did eventually fully launch.
Apologies. To be clear, all of the ~troubleshooting~ flailing that I did after your previous comment I did in a separate install folder.
Ok, no problem. Thanks for continuing to troubleshoot for us.
Alright. placed the contents of the zip into the game folder. It launches 100% of the time. Tried 5 times and it worked all 5 times!
Ok, great! We are making progress. Now let's try installing the following packages from the website and see if it still works:
Next, there are also several settings that I disabled/changed in this ini file. You can try re-enabling these one-by-one to see if any of these cause an issue:
d3d8to9 = 1
AdjustColorTemp = 1
RestoreBrightnessSelector = 1
FixGPUAntiAliasing = 1
AnisotropicFiltering = 1
AutoUpdateModule = 1
UseCustomModFolder = 1
UseCustomFonts = 1
Here are other settings I disabled (or set a specific) way for your setup so you can keep them off or as they are:
ScreenMode = 3
DisableGameUX = 0
DisableHighDPIScaling = 0
CheckCompatibilityMode = 0
CheckForAdminAccess = 0
DisableScreenSaver = 0
NoCDPatch = 0
Finally, you can add DSOAL if you like, but I have a feeling that it will only cause issues. But you can try it and then remove it later if it has issues.
Only oddity is that it takes a considerable amount of time to launch. 5 seconds before it pops up > 4 seconds black screen > 5 seconds white screen > then the Konami logo fades in on a black screen.
This could be related to one of the settings I disabled. Once everything is re-enabled this may go away. It could also be related to setting ScreenMode = 3
. You could try changing that, but I have a feeling that would cause issues.
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.