Skip to content
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

4B4E0840 - MGS 2 AND 3 (Metal Gear Solid HD Collection) #154

Open
cyberkitsune opened this issue Aug 30, 2015 · 48 comments
Open

4B4E0840 - MGS 2 AND 3 (Metal Gear Solid HD Collection) #154

cyberkitsune opened this issue Aug 30, 2015 · 48 comments
Labels
gpu-readback GPU-written data read on CPU (HDR adaptation, save images), needs d3d12_readback_resolve/memexport kernel-save-file-errors Title has issues saving or loading save games. kernel-xex-switching Title has issues launching other XEX files. state-menus Title has functional menus before any gameplay.

Comments

@cyberkitsune
Copy link

cyberkitsune commented Aug 30, 2015

Marketplace

Tested on xenia-project/xenia@7711568

Issues:

Loads game, gets to game selector.
Can move between MGS 2 and 3.
Can look at game descriptions.
Trying to open a game crashes Xenia.
Throws this assert a lot on the menu.
Not sure if it's a multi xex loading issue or something. If I open MGS2.xex directly instead of default it hangs on a loading screen, throwing up the same assert.

Video:

Video

Log:

Log

Labels:

state-menus

@cyberkitsune cyberkitsune reopened this Aug 30, 2015
@Razzile Razzile added the state-menus Title has functional menus before any gameplay. label Aug 30, 2015
@cyberkitsune cyberkitsune changed the title 4B4E0840 - MGS 2 AND 3 4B4E0840 - MGS 2 AND 3 (Metal Gear Solid HD Collection) Aug 30, 2015
@cyberkitsune
Copy link
Author

cyberkitsune commented Aug 30, 2015

As far as I can tell the asserts may just be NtReadFile calls that have a null completion routine, but no idea on the crash. Happens in a generated function which is well beyond my debugging skill level.

Also, if I run MGS2.xex or MGS3.xex directly, I get a loading screen but then this:

Xenia Error

@cyberkitsune
Copy link
Author

As of the latest build if I load MGS2 or MGS3 and let it load (ignoring the asserts) I get a screen flashing this set of colors. (The konami logo, and other logos play and I get some audio for a little then it cuts out too)

colors

Here's the assert I get:
asserts

@hch12907
Copy link

I can get into MGS3(running MGS3.xex directly) now (running commit 42abdabf664fe0d1c397486dbe377b40936150d5)
Crashes randomly.
screenshot 261
screenshot 262
screenshot 265
screenshot 266

), but it runs horribly slow and has many graphical glitches.

The log is way too big(over 200MB) and my internet speed is terribly slow(50KB/s)

@Blackbird88
Copy link

MGS2 also works now. It's painfully slow tho.
https://www.youtube.com/watch?v=krNLBmeb2s0 (MUTE THE SOUND)

@PersonalityPi
Copy link

PersonalityPi commented May 23, 2018

Can select games. Choose a game and it goes to a black screen doesn't get past this. Sometimes 'the guest has crashed' error will appear.

Edit: Seems to work much better when started directly from the games xex. Maybe xenia is having trouble switching xexs? (They run on their own xex).

However, MGS2 is painfully slow.

@copymystyle666
Copy link

copymystyle666 commented May 31, 2018

I have the same issue. I can't get the game selection menu, but as soon as I launch a game I get a black screen, and sometimes an error message like in the picture. I checked the log but there is nothing I can find that's useful. I can upload it if needed but as I use xenia-project/xenia@bbebfd49 there might be some fixes, improvements or features I am missing from the latest dev.

err

@LittleStinky123
Copy link

LittleStinky123 commented Aug 15, 2019

I retested this with commit xenia-project/xenia@e8621691 but I noticed this at least a week ago:
When I boot mgs3.xex, it crashes after the first codec conversation.
I skipped the cutscenes and fastforwarded the codec conversation if that is of relevance.
If I use an existing save from my Xbox 360 and cut off the first 0xCFFF Bytes, it lists the save files as damaged.
With all other games I tried, cutting off the header allows the game to load my save data.

I use an 8700k with a 1060 6gb with Windows 10 64bit and run xenia in DirectX 12/Vulkan mode.
I extracted my redump dump of this game with extract-xiso to run it and all hashes matched.
xenia_log.zip

@djrranga
Copy link

Hi, I'm having the same issue. I can select a game and view the instruction manual, as others have stated, but the game crashes as soon as I try to open one of the games. My disk image also doesn't seem to have a MGS3.xex or a MGS2.xex - just default.xex.

@xenia-project xenia-project deleted a comment from cyberkitsune Aug 19, 2019
@xenia-project xenia-project deleted a comment from cyberkitsune Sep 23, 2019
@xenia-project xenia-project deleted a comment from PersonalityPi Sep 23, 2019
@LittleStinky123

This comment has been minimized.

@ZolaKluke
Copy link

@LittleStinky123 You can't make compatibility reports with the Canary version. It's only allowed with Master builds

@LittleStinky123
Copy link

LittleStinky123 commented Nov 2, 2019

@ZolaKluke Ok, with the current xenia-project/xenia@443e6ed save game loading still doesn't work and it crashes after the codec like I said on the 15th of August.
Log of it crashing when loading my xbox 360 save:
xenia.log

@Margen67 Margen67 added the kernel-save-file-errors Title has issues saving or loading save games. label Nov 2, 2019
@Pollyvx
Copy link

Pollyvx commented Mar 15, 2020

With the most recent build as of 2020 03 16, Metal Gear Solid 3 HD doesn't start, it shows a black screen or crashes like user @copymystyle666 has described.

I'm running it on Ryzen 7 3800x with GTX1070ti.

@LittleStinky123
Copy link

LittleStinky123 commented Mar 17, 2020

@Pollyvx For now the launching the xex of the MGS game selected in the starting screen from the default.xex doesn't work.
If you extract the dump of your game with extract-xiso and select the xex of choice directly, it goes ingame, but is set on a constant 48 FPS for some reason for me with xenia-project/xenia@b1d3fd2.
Interestingly, if you extract your 360 savegame, remove the header, split it up into the files master.bin and data.bin and cut 2 bytes at the end of data.bin, it works with the PS3 version of MGS3 as well, if you happen to own both versions.

@Pollyvx

This comment was marked as off-topic.

@Etokapa
Copy link

Etokapa commented Sep 27, 2020

Tested on xenia-project/xenia@c2e8c55

Played MGS3 until I retrieved my backpack from the tree and was introduced to Paramedic and the Boss. 40-48FPS.

• Runs at a max of 48FPS.
⚠️ You must boot MGS3.xex!

mgs (9)

More Screenshots

mgs (1)
mgs (2)
mgs (3)
mgs (4)
mgs (5)
mgs (6)
mgs (7)
mgs (8)

xenia.zip

kernel-xex-switching

@Gliniak Gliniak added the kernel-xex-switching Title has issues launching other XEX files. label Oct 25, 2020
@Solid-Kris
Copy link

Solid-Kris commented Dec 22, 2020

The game works, you have to launch separately as no xex switching
Will try to play thru the whole game, to verify that its playable
On my RX580 it runs at 35-40 fps.
One thing i noticed that gameplay is bound to the framerate, so nothing below 48-50fps is considered great really

Maybe a sort of a frameskip system for this game?

[Remove if post unnecessary]

@emoose
Copy link

emoose commented Jan 31, 2021

With latest master xenia-project/xenia@9a74df4

MGS2.xex gets stuck on fading load screen for ~5 minutes, before eventually displaying intro logos. Logos/splash screen/menu flash in and out at very high speed. Menu seems to be running at a snail pace at 16FPS, but CPU usage is very tiny. Profiler shows ExecuteRaw jumping from 0 to 100+ms.
Framerate sometimes jumps up to 100+ FPS after going through the menus, maybe issue with vsync.
After menus another long fading load screen shows, which took even longer than the first load screen (~10 minutes).
3D graphics also have the flashing issue (and would also jump up and down from 300FPS+), so sadly unplayable for me atm.


MGS3.xex seems to work pretty fine however, other than some minor 2D flashing similar to MGS2, but only runs at ~38FPS for me at starting area, with game being noticeably sluggish as others mentioned. (profiler shows most of the frametime is taken up by Processor::ExecuteRaw in my case, 25ms or so - would be interesting if the people who reported being locked at 48FPS could check the frametime of this too)

Time scalar options only seem to affect audio, gameplay stays at same speed :(

Most articles talking about these HD ports mention they run at 60FPS on actual 360, so I guess game is coded to assume it's always at 60FPS...
But since the original PS2 game ran at 30FPS I wonder if most of the code was un-coupled from the framerate, maybe the 30FPS gameplay could be restored with an XEX patch or something (IIRC the 3DS version of MGS3 was patchable to 60FPS, maybe something similar can be done here)

E: the rest of this post is pretty much outdated now that I found the real culprit that prevented us from running it at 60FPS, see next post for details about that.
Leaving my old notes here since they might be of interest to people that can't run 60FPS though:

E: from looking at the games code it seems pretty hardcoded to work at 60FPS... but there are some spots where they correct things for 50FPS though (multiply by 0.83 / 1.2), but will only use those corrections if VdQueryVideoMode returns 50Hz refresh rate. Maybe it'd be a good idea to add an option for that to config, after all it's easier to get 50FPS than 60, and there's probably other games that are hardcoded for 50/60 too.

Below are some ways I found that can help if you can't get 50/60FPS, by speeding up animations & some other game-world things, pretty sure there's still a ton of things hardcoded for 50/60FPS though.


E: Seems 0x84423B7F is a byte that acts as a speed multiplier or something, by default for 60Hz screens the game sets this to 5, and for 50Hz it sets it to 6.
I'm guessing if you want to play at 40Hz/fps you should set it to 7, or for 30Hz/fps it should be 8, and hopefully this should let it run at a proper speed.

This number gets reset back to 5 pretty often though, a more permanent solution is editing the function that sets it: at 0x823342C8 it decides what number to use based on refresh-rate (some funcs also call this directly instead of using the stored value)

We can just change that func to always return the number we want instead, by patching 0x823342C8 to

38 60 00 XX 4E 80 00 20

Where XX is the number you want to set it to (you'll probably need to patch the XEX itself or use a xenia-patch file for this, don't think we can edit code with cheat-engine)

(tip: use 'xextool -eu -cu MGS3.xex', open MGS3.xex in hex editor, search for

7D 88 02 A6 91 81 FF F8 94 21 FF A0 48 00 74 9D

and change the first 8 bytes of the search result to the ones above)

BTW I haven't tested this out that much yet, but it seems to change character movement/anim speed at least. There's a ton of other 50Hz checks in the code which this doesn't touch though (the 'DisplayIs50Hz' func is at 0x8233B770), maybe those need to be looked at too.

These offsets are for the EU release btw (media ID 62DC722C, v0.0.0.6)

@emoose
Copy link

emoose commented Feb 1, 2021

E: the issues mentioned below (except the blurriness) have now been fixed as of xenia-project/xenia@690b0d9 - so both MGS2 & 3 should give better performance now!

Label suggestions

state-gameplay / state-playable
kernel-xex-switching
gpu-shader-errors
gpu-drawing-corrupt


Huh, the MGS2 long load time & flashing issues seem to be caused by https://github.com/xenia-project/xenia/blob/9a74df491ffd0189ddd26bc2030e0eae6a775f4e/src/xenia/kernel/xam/apps/xmp_app.cc#L431 - removing that Sleep lets MGS2 start up fine, just like MGS3.

MGS2 is calling that func from the main thread, guess that's what caused those issues, maybe we need to add some check there so it only sleeps when it's a different thread instead.

E: Looks like MGS3 is also doing the same thing too, with the Sleep removed even my ancient 3570K can get 55-60FPS now, without any patches, woot!

Anyway it's a little hard to make out, but here's MGS2 ingame:
image

Not really sure what's up with that blurring, the cutscenes all seemed fine. Tried changing a bunch of config options but haven't found any that fix it unfortunately ;_;

@funkytownyanis
Copy link

I have the same issue. I can't get the game selection menu, but as soon as I launch a game I get a black screen, and sometimes an error message like in the picture. I checked the log but there is nothing I can find that's useful. I can upload it if needed but as I use xenia-project/xenia@bbebfd4 there might be some fixes, improvements or features I am missing from the latest dev.

err

I'm having the exact same issue using the newest version of Xenia. Il be able to navigate the menu and then when I launch a game it either gives me a black screen or a crash log and notification.

@emoose
Copy link

emoose commented Jul 3, 2021

@funkytownyanis MGS2, MGS3 & the menu launcher are all separate XEX executables, Xenia will run the launcher XEX but doesn't support reloading into another executable atm. For now you can get around that by running the MGS2/MGS3 XEX directly (if you have ISO/GOD you'll need to extract it)

E: oh as gibbed mentions below you can use launch_module with ISO/GODs, eg. running xenia like xenia.exe --launch_module=MGS2.xex or xenia.exe --launch_module=MGS3.xex should hopefully work.

@ajojoreference
Copy link

In both mgs2 and mgs3, cutscenes seem to have a problem where sound effects and voice lines will get progressively out of sync. Its uneffected by the max_queued_frames = 3, as the delay still happens with or without it. The subtitles themselves are also delayed.

@Petkundaz
Copy link

Petkundaz commented Sep 10, 2022

In both mgs2 and mgs3, cutscenes seem to have a problem where sound effects and voice lines will get progressively out of sync. Its uneffected by the max_queued_frames = 3, as the delay still happens with or without it. The subtitles themselves are also delayed.

it's not an issue when you use vulkan for some reason but some textures dissapear
Edit: Seems like while the game fps can fluctuate the audio is hard capped at 60 fps no matter what, when i tried uncapping the fps, the audio was horribly behind and when i capped it at 55 it synced up perfectly, so i think when you cap the game at 60 it actually runs slightly faster and it slowly starts to become noticeable in cutscenes

@Petkundaz
Copy link

In both mgs2 and mgs3, cutscenes seem to have a problem where sound effects and voice lines will get progressively out of sync. Its uneffected by the max_queued_frames = 3, as the delay still happens with or without it. The subtitles themselves are also delayed.

@ajojoreference i've been trying to fix this for days now and it turns out that all you have to do is set fps cap in your gpu driver to 60

@ajojoreference
Copy link

@ajojoreference i've been trying to fix this for days now and it turns out that all you have to do is set fps cap in your gpu driver to 60

I can confirm this works, though the newer builds seem to have reintroduced a transparency bug that makes mgs2 unplayable

@theagilecoder
Copy link

theagilecoder commented Sep 12, 2022

MGS3 runs well for me but freezes when trying to go back to the title screen via the option menu.

Screenshot 2022-09-12 162244

Any solution to this ?

@UnAssumedAlias
Copy link

UnAssumedAlias commented Sep 17, 2022

Newer builds of Xenia and Xenia Canary have the same weird transparency bug. Where you can see like waterfalls or oceans through buildings. Really really weird lmao...

EDIT
Metal gear solid 2 is completely unplayable on the tanker section and probably the rest of the game due to the water transparency bug.

@Khangirey
Copy link

Newer builds of Xenia and Xenia Canary have the same weird transparency bug. Where you can see like waterfalls or oceans through buildings. Really really weird lmao...

EDIT Metal gear solid 2 is completely unplayable on the tanker section and probably the rest of the game due to the water transparency bug.

Setting this line to true in the config makes this problem go away.

gpu_allow_invalid_fetch_constants = true

@zporkzzz
Copy link

zporkzzz commented Oct 16, 2022

With gpu_allow_invalid_fetch_constants = true, MGS2 is playable without graphical error while in gameplay, however there is constant flickering/screen tearing in most cutscenes, and some in-codec footage is completely black.

EDIT: This is an issue with resolution scaling, as reverting to default resolution makes the game perfectly playable. Shame some of the textures aren't as nice on the lower resolutions tho

@CommicKick69ing
Copy link

Fore some reason I'm getting immediate crashing upon booting up either MGS2 or 3 what going on?
Capture

xenia.log

@Petkundaz
Copy link

Petkundaz commented Jan 17, 2023

Fore some reason I'm getting immediate crashing upon booting up either MGS2 or 3 what going on? Capture

xenia.log

Did you use Default.xex? You have to use MGS2.xex or MGS3.xex otherwise it will crash

@kmdono02
Copy link

kmdono02 commented Mar 3, 2023

Transparency bug still occurs on Xenia Canary on Series X/S, even with above config change

@Gratzi3
Copy link

Gratzi3 commented Mar 8, 2023

Transparency bug stopped being fixed by "gpu_allow_invalid_fetch_constants = true" after some specific Canary build. It works in January 29 build, both MGS 2 and MGS 3 work glitchless.

The only problem for me is the sound. Somehow I don't have steady sound quality - it loses high frequencies sporadically

@RelaxBandit
Copy link

My problem with mgs3 is after finishing the first mission it makes my screen fully black and forcing me to sign out of pc to get rid of it

@Jzasmack
Copy link

Fore some reason I'm getting immediate crashing upon booting up either MGS2 or 3 what going on? Capture
xenia.log

Did you use Default.xex? You have to use MGS2.xex or MGS3.xex otherwise it will crash

Same issue as [CommicKick69ing], I only have the Default.xex do I need to create MGS2.xex and MGS3.xex.

@kmdono02
Copy link

Yes, you need to launch them separately using their respective .xex files

@xXmlodyXx955
Copy link

how tho?

@bigkingkoa
Copy link

Can confirm that on the latest Canary build, setting "gpu_allow_invalid_fetch_constants" to "True", makes no difference. Tested it on Xbox Series S.

@xenia-project xenia-project deleted a comment from OCELOT-SANNIN Apr 4, 2023
@xenia-project xenia-project deleted a comment from bigkingkoa Apr 4, 2023
@xenia-project xenia-project deleted a comment from OCELOT-SANNIN Apr 6, 2023
@xenia-project xenia-project deleted a comment from bigkingkoa Apr 6, 2023
@xenia-project xenia-project deleted a comment from bigkingkoa Apr 7, 2023
@xenia-project xenia-project locked as spam and limited conversation to collaborators Apr 7, 2023
@Margen67
Copy link
Member

Margen67 commented Apr 7, 2023

Tech support belongs on the Discord server: https://discord.gg/Q9mxZf9

@xenia-project xenia-project unlocked this conversation Apr 12, 2023
@Reonu
Copy link

Reonu commented Jun 5, 2023

In MGS3, when interrogating a guard, the sentence the guard says gets cut off almost immediately. The subtitle gets cut off too.

@KRegan82
Copy link

Just downloaded master build tonight and this was first game I played. Getting graphical issues in cutscene after The Boss tosses Snake off of the bridge. Chopper blades over top of everything else. Playing on PC with 5700x and 3070. Extracted XEX files from iso.

@variousduties
Copy link

variousduties commented Jul 11, 2024

image
Images taken by the camera in MGS2 don't appear and instead show a black box.

@antoniodesousa
Copy link

image Images taken by the camera in MGS2 don't appear and instead show a black box.

Enable d3d12_readback_resolve. It doesn't work with upscaling.

@Margen67 Margen67 added the gpu-readback GPU-written data read on CPU (HDR adaptation, save images), needs d3d12_readback_resolve/memexport label Aug 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gpu-readback GPU-written data read on CPU (HDR adaptation, save images), needs d3d12_readback_resolve/memexport kernel-save-file-errors Title has issues saving or loading save games. kernel-xex-switching Title has issues launching other XEX files. state-menus Title has functional menus before any gameplay.
Projects
None yet
Development

No branches or pull requests