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
596 stars 42 forks source link

[Silent Hill 2] Checklist of Remaining/Wishlist Fixes #13

Closed elishacloud closed 4 years ago

elishacloud commented 6 years ago

From @Polymega on October 17, 2017 23:59

(Note: This thread was made a few days before the creation of the SH2 Enhancements Repository)

I'm doing a play through of Silent Hill 2 again for the Enhanced Audio project and I was making mental notes of the remaining "wishlist" fixes and wanted to post them for posterity purposes.

Noted areas for improvement:

Discussion thread

Fixed!:

Copied from original issue: elishacloud/dxwrapper#9

Bigmanjapan commented 6 years ago

@Polymega apparently Maria cutscene is OK on SLES-50382 (on PCSX2 1.4.0).

default

And on SLES-51156.

default

And on SLPM-65051.

default

And on SLUS-20228.

default

Polymega commented 6 years ago

@Bigmanjapan So I wonder if SH2 PC code was derived from NA SH2GH (SLUS-20228GH) or JAP SH2 Saigo no Uta (SLPM 65098)?

I wonder if that knowledge would assist us with checking a particular PS2 version in helping with the lighting transition bugs? As in, if these PS2 versions are mirroring some of the PC bugs, maybe that's the version we should also look more into when trying to fix other future PC bugs?

Bigmanjapan commented 6 years ago

@Polymega

SLUS-20228GH

slus-20228gh

SLPM-65098

slpm65098

I only get this glitch on SLPM-65098. Didn't change any emulator settings between the runs. I use the basic D3D11 Software plugin without any additional hacks. No Speedhacks or Game Fixes either.

What's your setup? Are you using PCSX2 1.5.0 by chance?

So I wonder if SH2 PC code was derived from NTSC SH2GH (SLUS-20228GH) or JAP SH2 Saigo no Uta (SLPM 65098)?

That is very likely.

Polymega commented 6 years ago

@Polymega

SLUS-20228GH

The plot thickens...

Are you using PCSX2 1.5.0 by chance?

Yes sir, I am.

angularGraphics commented 6 years ago

@Polymega

"Next up: Do you have a website and/or contact method you'd like me to include on the Installation Guide? Right now I'm linking to your defunct NeoGAF account as that was all I could find on you."

For now, leave it as is. I'll let you know if I change my mind.

"I actually fixed this one for you. If you download your FMV pack from the Installation Guide's page it'll have that single frame removed from the video file. It still plays fine without it."

Good! I'll be double checking everything this time around. Fun fact: When I created the first pack my monitor at the time was a 17'' 4:3 CRT. Yup, not even widescreen to properly check output :P

"If there's any possibility for them to be at 60 fps (without cheating the process like trying to time blend source 30 fps files) that'd be my personal request."

You figured my main inspiration behind doing a v2.0 ;) It's definitely technically possible for me to make them; whether the game will play them correctly remains to be seen.

And there's something more I wish to experiment with, and fix.

The videos seem to use "TV" levels: 16-235 levels of brightness. On PC world we use "PC" levels, 0-255. What this means is the current videos are never truly dark/black (or truly white), they are just grey.

Mouse over: https://diff.pics/Q8TLN4_s1Hbw/1

It's very much evident when the video starts slowly fading in from "total black" and that "total black" is just grey. edit But maybe the game fixes this on the fly anyway.. Haven't really tested it yet.

"I definitely suggest keeping them in a 16:9 ratio. Perhaps offer variants for users to choose from?"

I think whatever I'll end up doing, it'll be just 1 pack.

"The only possible concern that came to my mind is @ThirteenAG and @AeroWidescreen made custom code in their Widescreen Fix project to accommodate displaying your current FMV Enhancement Pack correctly. I'm not sure how that would affect a newer version if size/resolution would be changed."

I think it would be ok to break compatibility if the new pack is considerably better and it's the final revision of things. But we'll see if there is a need for that.

AeroWidescreen commented 6 years ago

@angularGraphics Hey, good to see you here! Big fan of the work you did to the FMVs.

Should the aspect ratio be slightly stretched, as the variant which I see has been created?

I think whatever I'll end up doing, it'll be just 1 pack.

I'll share my opinion and say I prefer pillarboxing or cropping over stretching. Circles should like circles, squares should look like squares, and I personally won't have any desire to use this new version if the only choice available is a distorted one. I know some people feel differently, but again, it's only my opinion.

I think it would be ok to break compatibility if the new pack is considerably better and it's the final revision of things. But we'll see if there is a need for that.

It should be fine. I think the only thing that matters is resolution, but if it breaks we'll fix it.

Polymega commented 6 years ago

It's definitely technically possible for me to make them [at 60 fps]; whether the game will play them correctly remains to be seen.

Nice! I'm sure you thought of this already but I'd do a single, simple test video at 60 fps and see what the game does when you load it up.

I'll share my opinion and say I prefer pillarboxing or cropping over stretching.

+1 for cropping for me as well. Then, barring that, pillarboxing. Stretching is a last resort for me, too. But you'll have folks like @Storm3000 who prefer stretching over the other choices.

With that said, if you do decide to do a "2.0" of the FMVs, I'd say consider the option of rendering out different versions. User choice never hurts as there are very differing preferences for this sort of thing.

Edit: Perhaps as in keep all versions at 16:9 but have one with the pillarboxes, another cropped, and the other stretched. Keeping them all at 16:9 will make the WSF patch work consistent no matter what version a user decides to use.

I think it would be ok to break compatibility if the new pack is considerably better and it's the final revision of things. But we'll see if there is a need for that.

I may be mistaken but the WSF's patch for your FMVs is required to get them displaying correctly in widescreen? But it's all good as we just got confirmation from Aero the patch can be adjusted if resolutions were to change. :)

angularGraphics commented 6 years ago

60 fps FMVs play correctly if I go by what I just tested with toilet.bik... But that's the case only if I unlock the framerate to 60, which not everyone might want to do..

Whether the programming geniuses here can make a hybrid mode where only FMVs play at 60 and the rest of the game remains at 30, and whether these on the fly changes would work or mess up things, I don't know :P

Polymega commented 6 years ago

You've come to the right place to have such questions looked into! What happens when you try and play toilet.bik while the game is at 30 fps though? Does it play noticeably faster or slower? Or doesn't play at all?

angularGraphics commented 6 years ago

It plays slower - I would guess half speed - and with frequent fps drops and audio stuttering every few seconds. With unlocked framerate it plays smooth.

AeroWidescreen commented 6 years ago

If you could upload that video, one of us could take a look at it.

angularGraphics commented 6 years ago

I just prepared toilet.bik here

60 fps. 1280x768 resolution. For my first pack I padded the videos with pillar-boxing left and right to 1360x768 so that the game doesn't distort them. From what I see, this is no longer necessary. Running the game with the WS fix, and using: FMVWidescreenMode = 1 FMVWidescreenEnhancementPackCompatibility = 0

adds pillar-boxes on the fly.

Disregard the video quality, it's only meant for testing of 60 fps.

angularGraphics commented 6 years ago

Why is dsound.ini from IndirectSound not mentioned in the guide to be extracted as well? The guide mentions only the dll. Is there a particular reason, or is it just not necessary, or was it omitted by mistake?

edit IndirectSound's creator writes that for SH2: http://indirectsound.com/games.html

dsound.ini must be used and earlyStopFadeOutTime must be greater than 0

So, shouldn't the .ini be placed in the SH2 directory after all? And what's a good value for earlyStopFadeOutTime?

Polymega commented 6 years ago

I last updated the guide before the release of IndirectSound v. 0.17. The reason I haven't updated it yet is that the entire process on how to install these fix packages will change soon. Because of that, I was just holding off until this large install update happens.

Two milliseconds (0.002) is a good amount to set it to.

AeroWidescreen commented 6 years ago

@angularGraphics

Thanks! So I think it's technically possible to have the FMVs run at a different framerate from the rest of the game, but the videos don't play as smoothly anymore with the method I'm using: https://youtu.be/XR45qJLL1k0

Edit: I realize it might not seem so bad in that particular video. I've compared locked 30 vs unlocked before, and there is a difference in the amount of stutters I experience.

I suspect the issue here is that I'm technically letting the framerate run completely unlocked when the FMVs are playing, because if I limit the framerate to 60 using RivaTuner then some of the stuttering goes away. Unfortunately, I don't know how to change the framerate limit since all my attempts have led to crashes. I'll also admit I don't fully understand how it works, so there still might be hope.

Framerate Function: 004F6CE0

FMV Framerate Function Calls:

0043DD90 call 004F6CE0
0043DDE5 call 004F6CE0
0043DE27 call 004F6CE0
Polymega commented 6 years ago

@Bigmanjapan do you know of a way to "lock" an adjustable setting in the PC game's option menu? Similar to how the North American version locks the language to English only?

More specifically: Is there a way to lock the resolution adjustment to whatever it's currently set on and a user can't change it in-game?

Bigmanjapan commented 6 years ago

@Polymega it sure is possible to simply NOP several instructions to prevent rotation buttons from working:

https://youtu.be/wdpfTn9pQbY

There might be a more elegant solution from a programming standpoint. I just showed that one can change how rotation buttons behave.

Polymega commented 6 years ago

Great! Thank you Bigmanjapan!

Polymega commented 6 years ago

I got a weird one for you, @Bigmanjapan . All these years I thought the developers simply forgot to UV/texture this lip... but that's not the case at all. It just appears white based on distance?

https://youtu.be/QrwadY5HRH0

Bigmanjapan commented 6 years ago

The entire room has some unique fogging effect that is glitching out.

This white tint on the walls:

1111

A bottom white element of this effect also prone to glitching:

https://youtu.be/SrmDWM-WTG4

And it's definitely not a loading zone, it's some kind of a separate effect:

https://youtu.be/J5jH7qPWlB8

In your case one could say that there is some hidden camera culling that breaks the effect if it's positioned too far but in my first video when James did a shot camera remained static.

Bigmanjapan commented 6 years ago

It's possible to make a white element shown in my previous video darker and mask the glitch that way:

https://youtu.be/KS9OenGCFQM

sh2pc.exe+5428E2 (009428E2) byte Set it to 20 or something like that.

It does break Leave ending cutscene as shown in the video (therefore needs to be put at it's original value) and it doesn't solve issue with the white element on the stair that you've shown.

Edit: Game definitely tracks camera position and switches effect once James arrives at the upper part of the room:

https://youtu.be/vtlm9jPo2C0

Edit: apparenly this white tint is what is used as a horizon fog in other locations:

https://youtu.be/rWCaw0XBFeI

sh2pc.exe+542C34 (00942C34) float sh2pc.exe+542C30 (00942C30) float

The question is: do you want to make it look like PS2 version room? This white square looks bad even on PS2.

11

22

Polymega commented 6 years ago

Hmm... yeah. There's really no good compromise between adjusting 00942C34 and 00942C30. It may solve that specific quirk but it greatly changes the effect of the surrounding area.

I then thought about what would happen if I made the texture used there transparent (alpha). Assuming no other mesh uses that same part of the texture file it could work and theoretically fix the issue.

But the problem here is that the texture used for the staircase isn't a part of ru73.map texture files:

sh2pc 2018-07-28 11-38-56

And to be sure I also changed the colors of the metal floor in ru73.map:

sh2pc 2018-07-28 11-33-37

I'm guessing it's part of the ru74.map file but SH Texture Explorer can't open that one. And viewing ru74.map through SH Level Viewer results in some buggy effects:

image

Bigmanjapan commented 6 years ago

That's true, sometimes rooms use assets that belong to other rooms,

It may solve that specific quirk but it greatly changes the effect of the surrounding area.

It's possible to set custom front/back fog line values just for this camera angle.

ru74.map probably uses unnatural texture sizes therefore the explorer cannot open it. Someone would need to rewrite the software to make this solution path work.

Bigmanjapan commented 6 years ago

RPCS3 emulator has a logging window that shows every file being loaded by the game engine.

After the cutscene with Maria in Rosewater Park three enemy's textures / animations get loaded: mkn (mannequin), scu (lying figure) and red (PH). I wonder if there's some leftover code of PH roaming around the town.

Also, it's possible to see what textures get loaded when entering the final stage:

-1

On a second playthrough this was also added to the above list:

E {PPU[0x100000a] Thread (Unnamed) [0x022e2090]} 'sys_fs_open' failed with 0x80010006 : CELL_ENOENT, “/dev_hdd0/game/BLUS30810/USRDIR/sh2/data/bg/rr/rrGB.fcl” [2]

Polymega commented 6 years ago

I wonder if there's some leftover code of PH roaming around the town.

That would be cool if the code is there!

https://youtu.be/NIWu6m5zYE4 (Clip at the end which is also shown on one of SH2's longer trailers.)

Also, it's possible to see what textures get loaded when entering the final stage:

I'm not at home yet to check but I didn't think there were ru75/76 files in the game?

Interesting...

Bigmanjapan commented 6 years ago

No ru75/76 files in PC build. The list ends on ru74.

PS2 builds have those files and the list ends on ru76.

Xbox builds have up to ru250 files but every file starting from ru75 is empty, 0 bytes in size.

RenoFriends commented 6 years ago

Is it possible to have the infinite stamina cheat on the game without cheat engine? Thanks!

Bigmanjapan commented 6 years ago

On PC version press quicksaving button — it will reset stamina.

RenoFriends commented 6 years ago

@Bigmanjapan OMG hahaha Don't know that! Thanks 👍🏻

Polymega commented 6 years ago

@Bigmanjapan is too humble to say but he knows a thing-or-two about speed running the game which utilizes the Quick Save strategy for infinite stamina. :)

natanqb commented 6 years ago

First of all thank you guys for doing this great work. I feel a little bad to ask you anything after what you have done and i am not sure this is the right place to do so but i have 2 sugestions that could make this version even better. The first one would be the letter from Mary to Laura, on the final version of the game there is no audio of Mary reading the letter, but this audio was recorded and you can hear it here https://www.youtube.com/watch?v=CquVMeK7Q3g. The other one is the videotape scene, some parts of the audio of that scene have been censored, you can hear it here https://www.youtube.com/watch?v=0f1C6CckWTs. I think these 2 changes would be a nice addition to the game, i hope you guys consider putting them on the game. Thanks for everything.

Polymega commented 6 years ago

Hi @natanqb ,

Thanks for the suggestion! But because these particular audio files were intentionally removed by the developers during the game's development, we won't add them back to keep the experience as true to source as possible.

Also, because the user can read through/skip Laura's letter at their own speed, we'd be unable to implement that particular audio file regardless as it's entirely controlled by the user.

natanqb commented 6 years ago

Alright @Polymega thank you for the response.

natanqb commented 6 years ago

Hi guys, sorry to bother you again, but i have a doubt. Is there any way to remove the health cross that appears when we have low health? I think it wasn't on the ps2 version and it can break the immersion appearing even during cutscenes. Example at 2h 43 min and 15 seconds of this video https://www.youtube.com/watch?v=KnrnjQXkpMk&t=33s.

Polymega commented 6 years ago

Hi @natanqb ,

I think it wasn't on the ps2 version and it can break the immersion appearing even during cutscenes.

The red cross was added by the PC developers due to the potential lack of controller use. If someone is playing the game with a keyboard and mouse they would have no way of knowing when they're near-death in-game unless they constantly pause to check their status, which simply isn't fun.

This is even more of an issue when using Xinput Plus as that software completely disables controller vibration when in use.

Unlike Resident Evil, James' animation doesn't change when he's injured. For the console releases, you could rely on controller vibration to indicate low health, but for the PC release, an alternative solution was made for keyboard + mouse players.

As mentioned on your YouTube playthrough, we have removed the red cross indicator during cutscenes (if you enable this via the d3d8.ini file) with the exception of one cutscene: After James comes out of unconsciousness from falling from the hospital rooftop. We kept the indicator up for that cutscene only because it makes sense and aids to the purpose of what is happening there.

Bigmanjapan commented 6 years ago

Returning to the mannequin flashlight room. Dormant mannequin is still considered an enemy and on beginner / easy action difficulties James will often go into battle stance mode upon trying to pickup a flashlight if a player has a wooden plank equipped (because an enemy is behind the flashlight).

It's on all official console versions but still doesn't feel right logic wise. It should be possible to disable autoaim for this room until the mannequin is awake.

Bigmanjapan commented 6 years ago

New stuff: on PC version it's not possible to use an ampoule if James HP already reached maximum. On PS2 and Xbox original versions a player can use ampoules one after another despite HP being at maximum.

Bigmanjapan commented 6 years ago

There is also an issue of PC version being able to load "Game Result" savefiles during gameplay which breaks the game completely since all of the current run info gets overwritten by the info from a run made on "Game Result" savefile.

On consoles, as you remember, it's not possible to load up saves during gameplay, only from the main menu.

Should "Game Results" saves be indentified and locked to prevent a player from loading them up during gameplay?

Polymega commented 6 years ago

There was one time--and as far as I remember, this was the only time--where I accidentally loaded a Game Result file while in-game instead of another file.

It loaded me onto the Observation Deck at the beginning but everything was messed up. There was no fog and the lighting values were completely wrong (everything was very dark). There was no music and I couldn't pull up the inventory screen.

I had to pull up the PC pause menu (by pressing "Esc") and exit to main menu to fix the bug.

Should "Game Results" saves be indentified and locked to prevent a player from loading them up during gameplay?

I say make a new support ticket! It can possibly be looked in to and determined from there.

Bigmanjapan commented 6 years ago

It loaded me onto the Observation Deck

That means that the "Game Result" save you've loaded from has Maria ending in it. Rebirth ending puts a player somewhere around the church island, In Water is pure black etc

Polymega commented 6 years ago

Oh wow, I never realized how easy it is to accidentally produce this bug. I guess, throughout all these years, I was just careful not to load a Game Result file in-game.

But hey, now I can make James attack himself with the Great Knife!

image

elishacloud commented 6 years ago

Hello @natanqb,

Hi guys, sorry to bother you again, but i have a doubt. Is there any way to remove the health cross that appears when we have low health? I think it wasn't on the ps2 version and it can break the immersion appearing even during cutscenes. Example at 2h 43 min and 15 seconds of this video https://www.youtube.com/watch?v=KnrnjQXkpMk&t=33s.

I added this feature into the mod. It will be in the next release. See check-in: 3954b2a

Polymega commented 6 years ago

@Bigmanjapan do you have the address on-hand that enables/disables the "Advanced Filters" found in the game's Options menu?

Bigmanjapan commented 6 years ago

@Polymega

Should be these two:

sh2pc.exe+633404 (00A33404) byte sh2pc.exe+633408 (00A33408) byte

Polymega commented 6 years ago

Thank you, sir.

Oh, and @AeroWidescreen I learned that the Advanced Filters option in the game is what toggles things like DoF, motion blur, and pseudo lighting bloom on/off. Just an FYI and for your records.

Bullsquiddy commented 6 years ago

Should this list be updated? A lot of these have been outright fixed.

Polymega commented 4 years ago

@angularGraphics are you still around these parts?

angularGraphics commented 4 years ago

You summoned me :)

Polymega commented 4 years ago

Hey!

So I believe I owe you an apology over my ditziness with the FMVs and their framerate. Allow me to explain:

For nearly two decades I believed the PS2's FMVs were 60 fps and that's... not technically true. The other month, when I opened a PSS (PS2 video) file on my computer and looked at its codec, it said it was actually 29.97 fps.

Then it dawned on me: The PS2 videos are at ~30p fps, and the PS2 plays them back at ~60i fps. Of course, and as you know, if you deinterlace 60i it turns into 30p.

My apology to you is that you've known this for years. As, in your ReadMe file for your FMV pack, you clearly wrote that the PS2 PSS videos are at 29.9X fps. For whatever silly reason, I never put two-and-two together that the PS2 console would play them back at 60i, which was never truly 60 full frames of video per second.

What does all that mean? Well, there isn't a true 60 (progressive) fps version of the FMVs out there, so making a true 60 fps enhanced FMV pack isn't technically possible.

Now, is there any truth/merit to all the gibberish I just wrote?

angularGraphics commented 4 years ago

I believe you got that wrong.

https://en.wikipedia.org/wiki/NTSC#Lines_and_refresh_rate https://en.wikipedia.org/wiki/DVD-Video#Video_data

NTSC TV and DVD formats are 29.97i, that's how all common interlaced video is recorded, and that's how SH2 should be as well (which it is). As https://en.wikipedia.org/wiki/480i shows, 480i60 and 480i30 are different names for the same thing, so perhaps that's part of the confusion.

My understanding of it is that the interlacing part can be observed by seeing the "jaggies" or "mice teeth" in a frame which carries objects during motion. Which proves that a single frame of 29.97i actually consists of two "subframes", put together. Therefore a ~30i video actually carries information of 60 unique frames per second... interlaced together.

Therefore, there's nothing wrong with or missing from the 29.97i PS2 videos, they are exactly as they should have been.

What is missing, is another 30p from the original PC release, the Xbox release, the PS360 releases, and even my pack. Smoothly deinterlacing 30i produces a reconstruction of sorts of the original two "subframes" buried within, i.e. 60p output. This is how I did it, but then I proceeded to discard every other frame to halve the output to 30p for compatibility -if no other- reasons, as you know.