lyall / mgshdfix Goto Github PK
View Code? Open in Web Editor NEWA fix that adds custom resolutions, ultrawide support and much more to the Metal Gear Solid Master Collection.
License: MIT License
A fix that adds custom resolutions, ultrawide support and much more to the Metal Gear Solid Master Collection.
License: MIT License
Hi
Not sure if this is the right place to report it, very new to github, but got your recent release with the feature to skip intros.
Playing MGS3-NA and the logos aren't bring skipped, I do have the upscaled logos from Nexus Mods but that's just visual so I doubt they would be the cause etc.
When I come to test MGS2 and the different regions etc. I'll let you know if I get the same results.
Also, thanks for working on the fixes :)
It seems as if Konami messed up the gamma levels of MGS2 and 3 when porting it over to The Master Collection. Possibly add in a fix for this? Seems like it would be easy to do so.
Examples at 1:17 and 4:24, not the most professional I know, but it's my first github post.
https://www.youtube.com/watch?v=gNBuXuHr6qs
Unlike the other MGS2 and 3 mod which also had this dll and a copy paste of files which worked, this one doesn't. With these files in the folder with the exe the game simply doesn't start.
I can't install this mod and DXVK(need this otherwise my game won't open), is there any way to use both dll's at the same time?
Looks like MG1/2, MGS2 and MGS3 all have this same issue of registering keyboard inputs when using windowed mode and alt tabbing out.
I frequently Alt-Tab and type, but MGS3 acts a bit like a keylogger and reads all input, regardless of whether it has focus. As I type this, Snake is crouch spamming, shooting, spinning in circles, equipping and unequipping items, everything but standing still. Somehow I even managed to tranq something.
This feature may not entirely be within scope of the mod, but I figure it's worth a shot with the mouse settings implemented.
If possible, I'd like to keep background input only for controllers, but that may be asking a bit much.
MG and MG2 skips launcher but doesn't open the main executable, I tried XBOX controller type and SP language. What's the command to open one of the two games?
Below is an image of MGS2 HD as it stands.
Below is an image of a bug that regresses the camera to its default for a single frame. (Press first person view button, then one frame later pause)
One of the biggest issues with MGS2 is the viewport being too tight, characters often disappear off-screen entirely.
Thank you for considering this issue.
Game assumes aspect ratio by reading highest available resolution for desktop instead of using curently selected resolution in game as source for aspect ration or primary resolution as source or current desktop resolution.
This leads to incorrect scalling issues.
Many 4k tvs and displays has resolution 4096x2160 supported which is 17:9 but should be scalled to 16:9 by tv. Primary resolution is 16;9 - 3840x2160. Game wronly assumes 4096x2160 resolution as source of aspect ratio, and 17/9=1.8888.
When all kinds of resolution selected, lets say 16:9 game thinks that it needs to be corrected and that its actually 1.88888 instead of 1.77777. And so it vertically stretching ABSOLUTELY EVERY GAME IN MASTER collection and add vertical pillar boxes.
I think this can be fixed by preventing game from reading maximum available resolution and only allowing it to consider currently selected resolution as maximum one. So some sort of enumerated resolutions list filtering needs to be done before giving this data to games.
everything looks great now . the only thing noticed so far is the codec calls static overlay for their faces.
It's possible to adapt this https://steamcommunity.com/sharedfiles/filedetails/?id=3068047947 to your fix?
MGS3 especially has horrible mixing and sounds are often far louder than they need to be. To the point where it sounds like one of those deep fried memes you'd see on youtube, that along with compressed audio in cutscenes adds to an overall poor experience. If there can be a way to fix both that would make this close to the definitive fix for this game.
I would love some way of pausing cutscenes available
The other fixes worked fine in my game, but after i tried to enable the mouse sensitivity multiplier, the game would just pops up white screen and then it just crashes. Tested on NA version of the game
Edit: I just found out that I have to reopen the game about 3 times to get the game works with that fix enabled.
Edit: retracted (crossed out) some statements as they were not specific to the patch.
This is tested on MGS3 so far.
With a 32:9 monitor the patch seems to ignore the custom width setting.
With width set to 2560 the game still runs at 5120 and stretches everything to the entire screen width. Aspect ratio setting does not have effect on this.
Windowed causes the game to drop down to 2-3 FPS when the window is in focus and 60FPS when not in focus.
Borderless does not work as the game tries to display on the left side of the screen , then proceeding to cause my monitor to lose signal and crash the game shortly after, restoring the signal (weird one).
Would really love to use this patch for the intro skip features, but have to fallback to MGSResolutionPatch for working pillarboxed solution. Can provide further info if needed.
Someone at Konami thought that it would a good idea to assign some actions to keys that are way too far from WASD. Adding an option to remap these actions to another key would be nice.
Would be nice to add windowed & borderless options, for windowed mode I found a pretty easy patch for it (included in the steam forums mod), haven't seen any major issues from that yet, though it did need an extra patch to hide mouse cursor since game was calling SetCursor
all the time.
(for finding that patch, it seems the Renderer.dll they shipped isn't actually a DLL but a .lib file with function names & a couple structs, from that I saw a CRenderBackend::CreateSwapChain
func gets called by CRenderBackend::CRenderBackend
with a param that sets it fullscreen, changing that param in the EXE from 1 to 0 seems to be enough to let it stay in windowed mode.)
Seems the game actually has some logic for storing/retrieving window position too, but not really sure how good that is, saw a few mentions that moving the window had issues.
Tried looking into making it borderless too, AFAIK this usually just needs the CreateWindowExA
style parameter changed to remove the border/maximize/minimize/etc flags, but when I tried that with this the game window just failed to render, cursor would stay locked in the borders it should have but nothing showed, not sure what's up with that... game does seem to have weird code for rendering the window as a child window of something else, maybe that's interfering somehow.
I had assumed I was the only one that was having issues with this mod not working as I saw no body else saying the same. I now realize that it's because I renamed METAL GEAR SOLID 3.exe to launcher.exe as to skip the launcher and have steam go directly into the game, which evidently negates nearly every feature of this mod and the game actually looks worse. Is it possible to remedy this and still bypass the launcher?
For what it's worth, the MGSResolutionPatch mod works fine in this scenario but lacks the other features of MGSHDFix
Hello,
Knowing this feature is experimental, I didn't see anyone complaining about a gap when [Fix HUD]
is enabled on a 21:9 screen, my resolution is 3440x1440
and I wish to have original HUD and movies content on this kind of resolution. Don't know if this option was intended for that but seems to.
Here some screenshots of the result when enabling this feature.
Playing without is ok otherwise, wish this feature will do its job one day without breaking stuffs! :P
The borderless mode has an issue with freezing of the game when I alt+tab the game, if there is a way to continue the game that would be great.
Windowed mode has the opposite problem where it continues to input game keys when you're not using the game application. If I type WSAD or Space on another application outside of the game, it'll register that input in the game.
Seen a lot of mentions about post-processing being broken when resolution is changed, not sure if anyone has tried making a comparison with them though (other than comparisons between PS2 & 720p HD collection).
Does anyone know any spot in the game where post-processing becomes noticeably different at different resolutions?
In RenderDoc I noticed they're creating some blurred render target buffers, looks like the resolution of those are being scaled with the game res though, eg. at 2560x1440 it creates 1280x720/640x360 buffers, while at 1920x1080 it creates 960x540/480x270:
eg at 2560x1440 game res:
vs 1920x1080:
Very similar results there, though the 640x360 buffer maybe ends up being slightly sharper because of the increased res, or possibly there could be something in whatever shader applies these blur buffers which ends up resizing them.
Please let your fix work with them too, they all lacking resolution selection, all has same aspect ratio problems. And in case of MGS1 its possible to swap some values in memory to change internal rendering resolution of PS1 emulator (and hopefull other settings like bilinear filtering of textures) to actually make less ugly. I suggest to mimic Duckstation resolution list, indlucing 2x. 4x, 8x, 9x, auto. Not sure which emulator they used but i believe it may also has some values for overscan zoom in crop or smart black bar detection to fix NTSC versions black bars.
I have it, windowed and borderless all enabled, but whenever I focus on another window the game still reacts to the keyboard inputs.
I believe the hover craft and some attachments on guards are affected.
Is it possible that games have a blacklist (or, failing that, a whitelist) of supported graphics cards?
My doubt arises because with old cards the game does not even start, it is not that it is slow or has problems, it is that as soon as you start the main exe a white window simply opens for a few seconds and does absolutely nothing. I have noticed that this happens with games that have 64-bit libraries (steam_api64.dll)
The default mouse controls for MGS3 only emulate a right analogue stick. Adding in raw input would be very helpful.
Not sure if this beyond the scope of this project but It'd be great if a hack for upping sensitivity in MGS3 could be implemented for KB+M. Currently it's abysmal and messing around with DPI & Mouse settings on windows is a pain.
Hello. As you may know, all pressure sensitive related controls have been completely stripped out from this port, which makes sense.
In general, you could play MGS3 on PC (on PCSX2 or RPCS3) with pressure sensitive controls working with DsHidMini (https://github.com/nefarius/DsHidMini). One example of it being implemented directly into one emulator is this: https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Input/ds3_pad_handler.cpp
I don't know enough to guess how hard this would be to reimplement, and it could be out of scope for a project like this, but I wanted to ask anyway.
What do you think?
MG1/MG2 in the master collection runs into similar issues as MGS2/MGS3, running at a locked 720p resolution, and having the same aspect ratio bug detailed in #2 (since it shares the same code as MGS3 for the most part)
Presently, MGSResolutionPatch does support increasing MG1/MG2 to native resolution, but does not have the aspect ratio fix.
Would love to see support added for increasing the resolution to native screensize with this mod as well (as rendering at native resolution does increase sharpness a bit) if it's not too much to ask. โฅ
I've encountered issues setting up the fix for MGS1 on steam deck. Following the instructions to just extract the file into the .exe folder and tweaking basic configuration settings the game remains unchanged. Is this a known issue?
My monitor is 3840x2160 and when I change it to that resolution in the ini I get permanent black bars on each side of the screen and the entire image in squished horizontally.
However if I set the ini to 4096x2160 everything looks pixel perfect in a 16:9 aspect ratio. Except for any prerendered cutscene. These now show bright red bars on the side of the screen that are oldy asymmetrical.
I've tested this on this mod, as well as the MGS Resolution Fix, just to see if there was something different, but replicate the same crash when taking a picture in MGS3. It crashes MGS3.exe to the desktop and "suspends" it in Resource Manager.
Would allow people with lower end machines to play the games without slow motion.
Opening this issue so that we can figure out what breaks if we use the experimental UI/HUD fix.
I encourage other Ultrawide and wider users to add to this list.
There's some ways to launch the game EXE directly, but usually results in wrong buttons/game language being used, looks like launcher passes those along as arguments to the game EXE, might be nice if some defaults for them could be setup in the INI instead.
eg. some params procmon shows game launching with:
"METAL GEAR SOLID3.exe" -region us -lan en -selfregion EU -launcherpath launcher.exe -ctrltype KBD
For launching game EXE directly it looks like creating steam_appid.txt file with 2131650 inside is enough, not sure if it's steamstub or the games steamworks stuff that needs that in place, if it's just steamworks side maybe setting SteamAppId
environment variable with SetEnvironmentVariableW
before game code is ran could help.
Alternately could just create the steam_appid.txt file in game folder when it doesn't exist already, to enable the next game launch to be ran directly, iirc re4_tweaks does something like that to allow direct launching too.
E: looks like in MGS3, the values for these get stored inside:
Seems the lan/region are passed to COsContext::InitializeSKUandLang
, and ctrltype is passed to NHT_COsContext_SetControllerID
, both exported from Engine.dll, maybe could hook those exports and override them from INI values if default value was passed to them (so that exe args would still work) (eh that could have issues if user tried certain selections from launcher while INI options were set - probably better to scan for the args and only override if they weren't specified instead)
Doesn't look like selfregion is actually used in MGS3, could have missed something about that though, code that sets up these args is a little weird.
I'm so used to the classic controls in Metal Gear games that having X as confirm and O as cancel actually trips me up a lot, is it possible to have an option to swap these just for their menu purposes without affecting their actual ingame function?
Not sure if this is beyond the scope of this project but I figured I'd suggest it!
Konami didn't add anything to skip those long cutscenes. It's fine when finishing the game as part of a story playthough but, After that it's annoying.
Any way to implement this?
The first time when the player encounters c4 the following video codec call with Otacon crashes the game
additional information
Hardware used: steam deck
Compatibility: proton experimental
Resolution:800p 16:10
Game apparently has a hardcoded texture size limit of 16MiB, mods like https://www.nexusmods.com/metalgearsolidmastercollection/mods/29 have mentioned running into this limit already.
In MGS3 it seems there's a CTextureBuffer class which then gets some buffer part of it malloc'd to 16777216 bytes, possible this is the cause of the texture size limit. At 0x140046BE0 is a GetInstance function that returns the instance of that class, and xrefs to that function then seem to handle mallocing that buffer themselves, eg:
Seems there's around ~6 spots in MGS3 with identical code to above (though I think the buffer is only allocated once per session)
I'm not really sure what files need to be changed for it to crash with >16MB textures though, if anyone has a modded file that does cause crashing an upload would be appreciated to test with!
Hello
I'm new to this and I honestly have no idea how much is possible to edit the games via this fix.
But since what have been made so far feels like magic, and is making the collection more and more refined and playable with each release, I'm wondering if it's possible to force the texture filtering to it's highest value, x16 I guess?
I know it can be forced in the graphics' cards settings, but it would be nice if it could be added to the fix for ease of access if possible.
Cheers and keep up the awesome work!
I dont know if this mod has the potential to implement it into the game but it would be great if i dont have to be struggling to aim at FPS mode with keyboard
MGSResolutionPatch is another project that aims to do the same thing as this one. I was wondering which is better, or if there were any key differences?
Related issues:
Sergeanur/MGSResolutionPatch#10
Realized its not working. Settings the custom resolution to something greater than your monitor size and settings the screen to borderless makes the screen only fill for the resolution of the screen while everything else gets out of bound of the resolution eg. only 1/4 of the game is shown if you set the custom resolution to 4K but have a 1080p screen.
Any way to make it possible output 4k in a 1080p screen size?
Pretty sure the "checking storage device" is just 'emulating' the PS2 memory card scanning, and should have been removed in the PS3/X360 versions. Even with an HDD however, the loading is much faster.
Would it be possible to remove/reduce the timing to the actual data load speed?
Thank you for your amazing work.
Some public beta branches were added today for fixing the speed issues that some people get, might need to check if all hooks still work.
Branches are passworded but passwords are in the posts
MGS2: https://steamcommunity.com/games/2131640/announcements/detail/3750995043925349423
MGS3: https://steamcommunity.com/ogg/2131650/announcements/detail/3736358345139231632
MGS1 also has a beta too: https://steamcommunity.com/ogg/2131630/announcements/detail/3705959047643376958
E: MG1/2 also has a beta branch, wasn't highlighted on steam some reason: https://steamcommunity.com/games/2131680/announcements/detail/3704833147717876893
Noticed someone else reported the same issue on this forum too
https://www.resetera.com/threads/metal-gear-solid-master-collection-vol-1-pc-performance-thread.777830/page-5#post-113930219
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.