Jeff

Widescreen Hack + High Resolution

Recommended Posts

Jeff

I struck gold in the youtube comments section. For years I've been looking for a "Beginner's Guide to Widescreen Hacking" and I finally found it. Youtube user AuToMaNiAk005 wrote a very nice explanation on how he hacks games. You should read the whole thing, paste it into a text file and keep it forever.

 

I've tried hacking a few games with this information, but the only success I've had so far was with Lego Island 2.

Spoiler

8k21Z1u.jpg

Spoiler

ig7u1G7.png

Spoiler

i6rS9ud.jpg

Spoiler

KRVplhQ.jpg

Like most widescreen hacks, it's not perfect. Some objects will disappear on the edges and the HUD is stretched. And sometimes you'll find weird stuff, like a Brickster-Bot that has been creeping in the main menu the entire time.

 

This also solves another problem I've had: Every time I start the game it runs at 640 x 480. The game seems to always start with the lowest supported resolution. But if you replace every possible resolution with just the one you want, it will start up with that one instead.

 

If anyone is interested, here are the offsets that I found:

Both English Versions:

- 640 at  0x529D, 480 at 0x52A4

- 800 at 0x52B2, 600 at 0x52B9

- 1024 at 0x52C7, 768 at 0x52CE

- 1280 at 0x52DC, 1024 at 0x52E3

- FOV at 0xA495

Note that matching width and height values are 7 bytes apart. Two pairs of resolutions are 21 bytes apart (the difference between 640 location and the 800 location)

 

Spanish Version:

- 640 at 0x52FD, 480 at 0x5304

- (I didn't write down the rest. See the note above.)

- FOV at 0xA765

 

pqmQmYT.png

I've updated the LI2 Mod Manager tool with a built-in custom resolution setting. (And built-in load time fix, and no intro videos hack.)
So far it works with both English versions and a Spanish version. If it does not work for you, send me a message and I'll look into it. I want to make it compatible with every version.

  • Like 6

Share this post


Link to post
Share on other sites
Xir

I've looked at resolution hacking before, but due to the infrequency of doing it I've never considered searched using the AoB method. I should try doing that next time to simplify my life. Thanks for the tip you didn't mean to give.

Share this post


Link to post
Share on other sites
Terrev

Good stuff, pinning this topic. Also, here's that YouTube comment, preserved:

 

Quote

You're welcome :)


Well, when I'm working on a widescreen fix, the first thing, I'm searching for is a widescreen resolution. There are few ways of setting these resolutions:


a) Look for text files located in the game folder (and/or its save one) with .ini or .cfg extensions. They may contain a resolution setting.


b) Check the registry (the regedit method).


c) Make a backup of the game .exe file, open it in a hex editor (I use HxD) and search for values which may be hexadecimal equivalents to the one of the resolutions supported by game. You can find these values by searching (Ctrl+F) an equivalent for a width (or a height) and looking (press F3 to search for the next result) for an equivalent for the second dimension which may be located in the range from 0 to 14 bytes (1 byte = two hex chars) away of the first dimension value.
When you find values which meet this requirement, overwrite them with the equvialents of your screen resolution, save the file and set the resolution which you've replaced with the new one.
I usually type 2003 in the search window and look for 5802. These two values represent 800x600 resolution.
If the game supports 1600x1200 resolution, I recommend to type 4006 and look for B004 to save time.
Here you can find a list of values: http://wsgf.org/article/common-hex-values


d) If you still can't run the game at widescreen resolution, then try to force it via RAM edit. HxD has this function, but cannot be used for complex research, so better use Cheat Engine. If the resolution can be changed via config window, run it and open the process (like I did in this tutorial). Next, scan for hex equivalents of any supported resolution - search for array and type <width in hex>0000<height in hex> (except 1024x768 and 1280x1024, because they appear as 000400000003 and 000500000004).
There should appear more than a one result, so you need to find that one (or two) which will affect the game's resolution. 
But first, it's good to replace all values, so you can check if changing resolution via editing the Config RAM will give an expected result.
If it did, look on the values' addresses. If you find a group of at least 4 results placed close to each other (about 10 bytes), ignore it. Also, the deeper part of RAM the value is located into, the lower probability of affecting the game's resolution it has.
The value's surroundings may be also helpful. Click on the result and press Ctrl+B, to see if the value is located near the equivalents of the resolutions SUPPORTED by the game.
You can also use a classic method of dividing by 2 (check if the first half of results affects the resolution, if yes, then reset your changes and replace only the first quarter, etc.).


e) If editing the Config memory didn't help, or the game just doesn't use one, you can try to change resolution via RAM edit while being in game. However, it may be dangerous to your graphics card driver, so use this method with care.
Unlike the Config memory method, replacing values in deeper parts of RAM isn't recommended.
Also, if you've replaced a correct value, the resolution may not be changed, when you go back to the game. Sometimes, you have to select the replaced resolution in game options again, or start a level to apply your change.
Some games doesn't save the new resolution, so you'll have to edit the RAM after every game launch.


f) For some people, dgVoodoo allow to force any resolution in DirectX games (if they set a widescreen resolution, the image becomes stretched). For me, this method doesn't work.


When you manage to set a widescreen resolution, but the image is still 4:3 (or a vertically cropped image isn't satysfying for you), then there's a big chance that the aspect ratio value (or values) is hidden in the game .exe.


a) First, replace (Ctrl+R) all ABAAAA3F (4:3 in hex) values. More info at: http://wsgf.org/article/common-hex-values


b) Replace all 0000403F (3:4, which is actually a value of vertical field of view in The Polar Express) values. Use this calculator to translate floating point numbers into hex: https://gregstoll.dyndns.org/~gregstoll/floattohex/
Note that files and RAM use this system: 78 56 34 12, while the site above use this one: 12 34 56 78.


c) Replace 0000803F (1) values to any value that definitely isn't present in the file (for example 9999493F). Since its a very common value, replacing some of them may cause serious glitches or even prevent the game from running. I recommend to replace all 0000803F values hidden in the range of 20000 bytes per launch. If the game won't start, try to locate the value that prevents the game from launching. Also, if you see a difference in the aspect ratio or field of view, locate the value which cause that change.


d) If replacing the 0000803F value didn't help, try doing the same on 0000003F value.


e) Replace all floats dividable by 0,05 from 0,55~1,5 range.


f) If you still haven't get an expected result, locate all values which affect the camera in any way and check their surrondings for values with 4 bytes length which end at 3B, 3C, 3D, 3E, 3F, 40, 41, 42 and 43. Replace them to see the effects.


g) FOV ONLY: Replace all floats dividable by 5 from 60~90 range.


About the mulit-monitor hack, it isn't recommended until someone finds a solution for FOV.


I hope that my reply is understandable. English isn't my native language :)

 

  • Like 1

Share this post


Link to post
Share on other sites
Xir

I noticed we are forced into fullscreen mode when doing the resolution hack. Is there any way to keep the available windowed mode hack while doing this?

Share this post


Link to post
Share on other sites
Jeff
14 hours ago, Xiron said:

I noticed we are forced into fullscreen mode when doing the resolution hack. Is there any way to keep the available windowed mode hack while doing this?

Using both hacks works fine for me.

It still behaves like the windowed hack normally does, but with the custom resolution size. Without forcing me into fullscreen mode.

Share this post


Link to post
Share on other sites
Xir

Uh, nevermind, silly derp. I had it set to my exact screen resolution, but apparently the game overpowers everything it covers on the screen, forcing me to alt+tab, and it gave me that fullscreen vibe when I did have to do that action.

Share this post


Link to post
Share on other sites
pivke

Hi Jeff,

 

this is awesome! Already took a look at the resolution, but I was not able to modify it via Cheat Engine. The only thing that changed for me, was the viewport-size of the game. Awesome you got it working! I'm gonna try it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now