Thursday, April 24, 2008

Metal Gear Solid 2: Substance PC Hex Edit

Without looking at the code, it's impossible to tell why MGS2 has so many issues on the PC using an NVIDIA GeForce graphics card. Regardless, people smarter than me have spent some time figuring out how to edit the binary to replace what appears to be search strings looking for ATI cards, thus allowing NVIDIA GeForce cards to run at full settings. I haven't gotten a chance to try thise myself, yet, but I certainly will soon.

Explanation 1 taken from here:
First download and install patch v2.0 from here:
http://www.konami.jp/gs/game/mgs2pc/english/index.html

Then you need an hex editor like frhed or whatever.
http://www.kibria.de/frhed.html

Find the files mgs2.exe and mgs2_sse.exe in the game's directory and make a backup copy of them in case you mess it up.

Now open the file mgs2.exe with the hex editor and go to edit->find and use the word "geforce" as a search term. Now the word "GeForce" should be highlighted and right next to it to the left side is the word "RADEON". These are the 2 entries you have to edit.

You have to replace the "GeForce" with whatever you like as long as the letter count remains the same. I just overwrote it with "removed".

Then the word "RADEON" to the left, this you have to overwrite with "GeForc". Notice the capital "G" and "F" and also missing "e" at the end, it should look exactly like that.

Now save and do the same steps with the mgs2_sse.exe file.

And just in case:
before:



after:



This should help to fix the problems with NVIDIA cards.



Explanation 2 taken from here:
Don't think from your message that you will have tried this fix, however you have a GeForce card anyway so do this, (thanks to the original poster, can't remember where I saw it now) -

1. Install MGS2.
2. Install the ATI 2.0 patch.
3. Find the files mgs2.exe and mgs2_sse.exe within the directory where the game was installed.
4. Backup a copy of each of these original files!
5. Open mgs2.exe with a hex editor... Frhed is a nice free utility that will suffice for this job: http://www.kibria.de/frhed.html
6. Look for the string RADEON, which starts at the following offset: 0x5f6e44.
7. Replace RADEON with ALL-IN. Don’t add or subtract anything else
8. Save the file.
9. Repeat steps 5-8 for mgs2_sse.exe. Note: this might not be necessary; on my system, Metal Gear seems to only use mgs2.exe… also, the hex offset will be different, but it’s easy to find by analogy.


Right, now you will need to follow the instructions but do a couple of things differently. At point 6&7 instead of replacing "RADEON" with "ALL-IN", replace it with "GeForc". Note the capital G and F and no e on the end. Near (right next) to where it now says GeForc, there will be the string "GeForce" (this starts at 0x5f6e4c in mgs2.exe and 0x5fd83c in mgs2_sse.exe). Replace "GeForce" with anything else as long as it has the same number of letters. The game will now use the Radeon graphics path on a geforce card and looks a hell of a lot better (tested on a GF 6800).