elishacloud / Silent-Hill-2-Enhancements

A project designed to enhance Silent Hill 2 (SH2) graphics and audio for the PC. It also includes scripts to build or modify SH2 audio files (SFX, BGM and Dialog).
http://www.enhanced.townofsilenthill.com/SH2/
zlib License
573 stars 41 forks source link

Can't load the mod folder on Windows 10 ARM #419

Open ghost opened 3 years ago

ghost commented 3 years ago

Hi. First of all, I want to congratulate you for this enormous effort. You're awesome, dear Enhanced Edition Team! Now, I'd like to share you an issue I'm having with the game running on Windows 10 for ARM. I have an M1 Mac that acquired recently, and it's my main and only machine. Yeah, I made the transition and got rid of my x86 machines πŸ˜… So now I have to run most of my games on a Windows 10 VM. This is less than ideal solution, but it's what I have for now.

The good news is that the game runs, and it's playable. But I can't get the mods folder to work. I opened the d3d8.log file, and saw this line: "FAILED to hook the FileSystem APIs, disabling 'UseCustomModFolder'!". I don't know if that can be fixed, or if it's a Windows thing. After all, I'm using a beta version of Windows. I'll attach the entire log to this post, there's a more detailed description of the errors.

I know it's my fault if I don't have the adequate machine to run the game πŸ™ˆ However, the goal of this project is to preserve an old piece of software, that otherwise would be forgotten and become obsolete. I'm convinced that Arm is the future, so I think that a compatibility fix for this architecture would be a good investment πŸ˜›

Thanks in advance for your help! Kind regards πŸ™‚ d3d8.log

elishacloud commented 3 years ago

I will probably need debug logs for this. Can you try using the debug build from the releases page and attach the log file?

Note: you may need to zip the file or it might be too large.

ghost commented 3 years ago

Thank you! Here's the log file. I also attached a few screenshots of the game. As you can see, it runs very well, but none of the high-res textures, fonts and videos work. I think all that work worths the hassle. It's the difference between a patched game, and a true remaster. So, if there's something more I can do to help, I'll be glad. Thanks again for your help, I'll be around.

d3d8.log.zip Captura de Pantalla 2021-04-13 a la(s) 6 30 03 p m Captura de Pantalla 2021-04-13 a la(s) 6 30 43 p m Captura de Pantalla 2021-04-13 a la(s) 6 29 21 p m

ghost commented 3 years ago

In the meantime, I tried the extreme solution: disabled UseCustomModFolder and merged the sh2e folder with the original data folder. It does work. Of course, if I do that I lose the original files, but I can create a backup to solve that. So... it seems the UseCustomModFolder function have some kind of problem with this version of Windows 10 πŸ˜•

I now discovered a new issue: the cutscenes are choppy. It happens with both the remastered and the original cutscenes. At first I thought it could be a CPU core bottleneck, but then it shouldn't happen with the original cutscenes...? Trying to activate multi-core just crashes the game πŸ˜” I guess I'll keep trying until it works without issues...

Edit 2: I replaced the ancient binkw32.dll with a more recent version, and now the choppiness is gone. You should consider to bundle a more recent version of the dll in the next update of the Enhanced Edition πŸ˜‚ Now that I think about it... I had a similar problem with my previous MacBook Air, an Intel 2017 model, and a GTX 770 eGPU on Boot Camp, although it just had a pause or two per video, so I didn't gave it importance πŸ€” The new version of the dll should be a great improvement for any modern computer, no matter the specs.

New discovered issue 2: specularity doesn't seem to work πŸ™ˆ Oh, well... that may be well beyond my abilities, but I'll try to fix it and report if I'm successful.

elishacloud commented 3 years ago

Try this update and see if it fixes the UseCustomModFolder issue.

Testing build: d3d8.zip

I replaced the ancient binkw32.dll with a more recent version, and now the choppiness is gone. You should consider to bundle a more recent version of the dll in the next update of the Enhanced Edition

Interesting. I just saw another game with an issue using an older version of bink.

specularity doesn't seem to work

Not sure about this one. Is it disabled everywhere or just in some locations?

Polymega commented 3 years ago

What binkw32.dll are you using? I just tested a later one and it starts to randomly skip audio as the video plays out.

I'm also a little worried about that from what I've read on their FAQ page:

Question Answer
Someone told me to get a new Bink DLL or to download the RAD Video Tools to get a new DLL to fix my game - why doesn't this help? Because it's lousy advice. Bink DLLs are NOT replacable! If you copy a different version of the DLL onto another pre-compiled application (like a game), then you are likely to crash. The RAD Video Tools don't even have the Bink DLL built into them, so this will have absolutely no effect. Please contact your game maker for support.
ghost commented 3 years ago

Try this update and see if it fixes the UseCustomModFolder issue.

Testing build: d3d8.zip

It works! πŸ₯³ Now the log shows no errors. I also noticed that with this version of the enhancements, I can change the resolution from inside the game. By default, it starts at 1024x768 resolution, and then it creates a .cfg file to save my picked resolution (I presume). Is that a new feature?

Not sure about this one. Is it disabled everywhere or just in some locations?

It's disabled everywhere. I won't hold my breath with this specularity thing. Unfortunately, a lot of games have graphical issues with the M1. The only games that renders almost "like Windows" are the ones with a Mac version (OpenGL or Metal), and some DX11 and Vulcan games that use MoltenVK. Maybe using a different wrapper (DX11 or OpenGL) instead of a DX9 one could do the trick.

What binkw32.dll are you using? I just tested a later one and it starts to randomly skip audio as the video plays out.

I'm using version 1.9.12.0, I'll attach it to this post. It absolutely does work. I remembered done this before, with another game, and it worked. Maybe I was lucky and downloaded a compatible version, but it definitely solves the choppiness. It even makes them more "fluid"... or maybe it's my imagination πŸ˜…, but it works like a charm.

binkw32.dll.zip

Polymega commented 3 years ago

I'm using version 1.9.12.0, I'll attach it to this post. It absolutely does work. I remembered done this before, with another game, and it worked. Maybe I was lucky and downloaded a compatible version, but it definitely solves the choppiness. It even makes them more "fluid"... or maybe it's my imagination πŸ˜…, but it works like a charm.

I tested this one and still get audio skips/stutters. Try going to the MOVIES menu (from the main menu) and play any of the ending FMVs. Play them multiple times. Do you get any audio skips and stutters?

elishacloud commented 3 years ago

Because it's lousy advice. Bink DLLs are NOT replacable! If you copy a different version of the DLL onto another pre-compiled application (like a game), then you are likely to crash.

There are hundreds of versions of Bink, and not all are interchangeable. Many are interchangeable, but some are not interchangeable. So just telling someone to randomly get a new one is bad advice. The new one could crash the game. However, finding an issue with an included version of Bink and testing the game with a specific updated version and verifying that the game works with that specific version of Bink and distributing that fixed version of Bink is ok.

It works! πŸ₯³ Now the log shows no errors.

Great. I will get this fix into the game.

I can change the resolution from inside the game.

Yes, this is a new feature that we added to the game in the last update.

By default, it starts at 1024x768 resolution, and then it creates a .cfg file to save my picked resolution (I presume).

It should start out using your existing resolution. The .cfg file should store the last used resolution. Next time you start the game after that it should start out in the last resolution used.

Is that a new feature?

Being able to switch resolutions from inside the game is an existing feature with the latest release. Storing the last used resolution in the .cfg file is a new change with this dll that has not been released yet.

I tested this one and still get audio skips/stutters. Try going to the MOVIES menu (from the main menu) and play any of the ending FMVs.

Getting skips in the menu when switching between videos or from the main menu to the movies menu should be unrelated to Bink. Bink only effects the actually playing of the movie. I think @DonQuinto was getting actual skipping while the movie was playing, whereas I don't think most people are get any skips during the playing of the movies. Thus most people may not see any difference with the the new Bink vs the old Bink, as long as the new Bink is compatible.

Polymega commented 3 years ago

Getting skips in the menu when switching between videos or from the main menu to the movies menu should be unrelated to Bink. Bink only effects the actually playing of the movie.

No, I meant he can quickly access all the FMVs (Bink videos) through the MOVIE menu to test. Play any of the ending credits videos using his provided binkw32.dll file. I get skips/stutters in the audio--it happens every 30-60 seconds or so.

Only the native SH2 binkw32.dll file prevents these audio skips so far through my tests. I also noticed the native Bink file is ~300KB vs. a lot of other versions online that are ~150KB or lower.

Thus most people may not see any difference with the the new Bink vs the old Bink, as long as the new Bink is compatible.

I think this is the problem.

Being able to switch resolutions from inside the game is an existing feature with the latest release. Storing the last used resolution in the .cfg file is a new change with this dll that has not been released yet.

@DonQuinto I should mention if you use a test build of a version of our project past 1.8.1900.0 the FMVs will look different than before. This is because we're revamping how the FMVs are displayed/scaled and will also require downloading an update to the FMV Enhancement Pack, which we haven't released yet.

ghost commented 3 years ago

No, I meant he can quickly access all the FMVs (Bink videos) through the MOVIE menu to test. Play any of the ending credits videos using his provided binkw32.dll file. I get skips/stutters in the audio--it happens every 30-60 seconds or so.

I've been playing the videos in the background, and so far so good πŸ€” It works perfectly with my computer. Maybe it could be of help to some players, those who are complaining about stutters in the videos.

DonQuinto I should mention if you use a test build of a version of our project past 1.8.1900.0 the FMVs will look different than before. This is because we're revamping how the FMVs are displayed/scaled and will also require downloading an update to the FMV Enhancement Pack, which we haven't released yet.

I haven't had issues regarding the scaling or the aspect ratio. Of course, if I play the game at a resolution with an aspect ratio different than 16:10, the videos will have black bars, but I'm OK with that.

I've never used LoadD3d8FromScriptsFolder, but it can be used to load a different wrapper like dgvoodoo, am I correct? I could use it to restore the specularity. I'll try it later on when I have a little more time, hehe.

Edit: Parallels came out of beta today and now it has an official version for Arm. Windows 10 also got a new release. I updated both but, other than asking me for a Parallels license, it doesn't seem to be a difference. Specularity still doesn't work, and I tried several wrappers like dgvoodoo and DXVK, but none appears to work with the Enhanced Edition. Oh, well... I can live with it. If there's any other solution that you could suggest me, I'll be glad to try it πŸ™‚

aminta commented 3 years ago

@DonQuinto me too I have a Mac M1 on Windows 10 Arm: the flashlight does it work for you? Can you describe me your configuration? Thanks.

ghost commented 3 years ago

You know? As I read your message, I ended up admitting: "I actually don't know" πŸ˜… You see, I've played Silent Hill 2 like a dozen times, and it's one of my favorite games. So naturally, when I got the M1 Mac, I wanted to be sure that the game runs on it. But I actually never played on the M1 far enough to notice if the flashlight works, and now I no longer have the beta version of Parallels, nor a license. If I get a license of Parallels in the future, I'll update this post with my findings πŸ˜•