Monday, January 23, 2012

Prototype

 If you wondered why did I put a download link for HEX editor (in "Useful links" section), you will find the answer here. We're fixing Prototype for fullscreen crosseye 3D.

 There are some games which can't be tweaked through config files, registry keys etc in order to obtain custom resolutions. Prototype seems to be one of those games that need a slightly complex fix (commonly named - hack). The information we need to edit is found inside a compiled file and editing such info as a text would be near to impossible. The linked HEX editor is freeware (XVI32).
 As a first step, run the game and set the ingame resolution 640x480. Save the settings and exit the game properly. Next, go into the game folder and backup "prototypeenginef.dll", because this will be your target.
 In the the HEX editor of your choice, open "prototypeenginef.dll". If it's your first time, you will see a weird endless string of numbers (1-9) and letters (A-F) arranged in 2digit groups (bytes).

 Now, a bit of short theory about how things work:
Somewhere in the file, it should be the information we need, but converted in hexadecimal format. Since the last saved resolution is 640x480, it should be "visible" in this file.
 If we take 640 and we convert it to hexadecimal (windows calculator is good enough), we will obtain 280. We need 2digit groups so we will add a leading "0" next to this number. The result is 02 80.
 Now, we need to invert the bytes (little endian) so 02 80 becomes 80 02.
                   Practically, the decimal number 640 is represented by 80 02 in binary files.
                   The same process applies to 480 and we obtain E0 01.
 Somewhere in "prototypeenginef.dll", we should be able to find "80 02" and, somewhere nearby, "E0 01". We don't know exactly how the whole string for "640x480" is represented in the binary, therefore the first search can be a pain. However, in this file, the needed string for "640x480" is "80 02 00 00 E0 01".
Now we need to overwrite this resolution with our weird 8:9 resolution (here 960x1080):
                    For 960, the hex string is C0 03
                    For 1080, the hex string is 38 04
 Following the format we found, we will replace "80 02 00 00 E0 01" with "C0 03 00 00 38 04". Save the file.
 There is only one place in "prototypeenginef.dll" where the replacement is done, but sometimes the strings can be found in multiple places and they all might need replacing (e.g. NFS: Most Wanted (nfsmw.exe) resolution hack - 4 replacements).
 Start the game. If you did exactly like how it's written above, the game should already start in the custom resolution. Note that you can modify any video setting ingame, as long as you don't touch the resolution setting. If you change the resolution at this stage, you might have to deal with this page again.

                                           This game offers a close-to-perfect stereoscopic experience.
 
 
 

5 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. It doesnt work, changed it via the hex editor.. One thing I dont get is, why should the game now that it has to display 2 diffrent perspectives by only changing the resolution aspect ratio to 8:9? And another question, I have a 5:4 1280x1024 and a 16:9 1366x768 screen, anything I have to watchout for the modification?

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Edit: ok, so I have thought about it, the resolution what your guide is made for, is 1920x1080. So I have to do maths a bit. 1366/2 = 683. But 683/768 doesnt equals with 8:9. So I tried a lower setting with 1280x720. The ratio of 640/720 and 8:9 is the same, so I modified the file. The game is still not shown in two perspectives and the option for 640x480 disappeared and the next higher resolution option was applied automatically by the game

      Delete
  3. 8:9 aspect ratio is for 16:9 displays.
    If you have, for example, a 16:10 display, you will need 8:10 aspect ratio. "683/768 doesn't equals with 8:9" is right, and is has a correct aspect ratio for your display.The 8:9 is not as essential as it seems to be from my writing.
    Now, getting the 683/768 resolution is just a step. You need the 3D injector for double perspective. Please check my first two posts http://crosseyegaming.blogspot.com/2012/01/preamble.html
    and
    http://crosseyegaming.blogspot.com/2012/01/aspect-ratio-in-crossview-3d.html

    You should find there all the info you need.

    ReplyDelete