RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Razor 1.0.12 and UO 7.0.5.0

AlphaDragon

Sorceror
Razor 1.0.12 and UO 7.0.5.0

Is anyone having issue with the play window sticking at 640x480?

I updated and seems that the Window size can not change from 640 x 480 to 800 x 600...
 

Kalaka

Wanderer
Same problem. Not a clue how to fix without somehow getting the old client file, which is only a temp fix anyways.

Anyone have other ideas?
 

Blondie25

Wanderer
Having the same problem... Apparently a few people are if you noticed the resolution thread above this one. Hopefully there will be a fix for it!
 

evilgoat

Wanderer
It just seems the location in the client's memory for the resolution has changed, was 0x006C660C for width, and is now 0x006C9614.
 

evilgoat

Wanderer
evilgoat-hybrid;827682 said:
It just seems the location in the client's memory for the resolution has changed, was 0x006C660C for width, and is now 0x006C9614.

Scratch that...

*Disclaimer, I'm no disassembly expert*





Basically, the width and height are around the wrong way now, so the comparison is never equal, if it did 'PUSH ECX' at 0x00557FF4, it would work, I've changed it to PUSH ECX in memory and it sets the resolution correctly.
 

Zippy

Razor Creator
Impressive, evilgoat-hybrid.

Too bad I don't have any build or disassembly tools installed in Windows.
 
A little tutorial

Here is an easy way to do it, step by step:

1) Download Cheat Engine from: Cheat Engine
2) Install it and run it
3) Run Razor
4) IMPORTANT!!! As soon as the UO client starts, in the login screen, switch to Cheat Engine.
5) Click the upper left button to open a running program and choose "client.exe" and press Open.
6) Click "Add address manually"
- In the Address field put: 00557FF4
- In the Description put whatever you want
- In the Type select Byte
- Pointer should be not selected
7) Click OK
8) Check the checkbox under "Frozen" column
9) Doubleclick the value under Value column, there should be a value 80 or 50 ( if in hexadecimal ). As soon as you double click the value you may edit it. If there was 50, put 51. If there was 80, put 81.
10) Enjoy your 800x600 client! :)
 

DASavant

Wanderer
Well the easiest way to get rid of the problem is to open the crypt.dll with a hex editor and manually change the je @1b3d into a fixed jmp

Search for "7416C70080020000"

And replace it with "EB16C70080020000"

Actually only the 7416 part is the jump if equal which jumps 16 bytes forward if the comparsion @1b30 is equal to 0x320 (800 decimal)

The "C70080020000" part is only because it should make sure that you find the correct offset in the file (1B3D)

If you changed the JE to a JMP correctly, you should also have no problems with the game window resizing bug after you apply a setting within the uo client anymore.
 

evilgoat

Wanderer
DASavant;827993 said:
Well the easiest way to get rid of the problem is to open the crypt.dll with a hex editor and manually change the je @1b3d into a fixed jmp

Search for "7416C70080020000"

And replace it with "EB16C70080020000"

Actually only the 7416 part is the jump if equal which jumps 16 bytes forward if the comparsion @1b30 is equal to 0x320 (800 decimal)

The "C70080020000" part is only because it should make sure that you find the correct offset in the file (1B3D)

If you changed the JE to a JMP correctly, you should also have no problems with the game window resizing bug after you apply a setting within the uo client anymore.

Or to stop the login screen being crazy big, you could...

Search for '817C240420030000'

Change it to '817C240458020000'

Then change the '7416' below it to '7E16'.

7E = JLE

After options menu closes EAX=2, but when you goto the login screen, EAX = some memory address.
 

DASavant

Wanderer
evilgoat-hybrid;827998 said:
Or to stop the login screen being crazy big, you could...

Search for '817C240420030000'

Change it to '817C240458020000'

Then change the '7416' below it to '7E16'.

7E = JLE

After options menu closes EAX=2, but when you goto the login screen, EAX = some memory address.

Yup but then you have the game window resize bug if you change in game settings...
 

evilgoat

Wanderer
DASavant;828000 said:
Yup but then you have the game window resize bug if you change in game settings...

Nope.

'After options menu closes EAX=2, but when you goto the login screen, EAX = some memory address.'

So after options, JLE is called, on logout EAX=some high number, so doesnt jump.
 

DASavant

Wanderer
evilgoat-hybrid;828001 said:
Nope.

'After options menu closes EAX=2, but when you goto the login screen, EAX = some memory address.'

So after options, JLE is called, on logout EAX=some high number, so doesnt jump.

Still doesn't work (at least for me), the game window resizes to 640x480 if you change options in the game client and hit "apply". After that you have to log out and back in again to get your normal game window size...
I prefer some black rubbish around my log in box and a working options functionality without the client resizing down to 640x480 when I apply some settings or create new in game macros.

But either way, you did some nice effort in finding the resolution function and thanks for the screenshots of the debugger since I don't have a dasm tool installed.



EDIT:
Nevermind... my hex editor didn't run in administrator mode and the changes weren't saved / I didn't get a failure message. Your fix works like you intended :)

Changes to the forced game size in razor can now also be applied without logging out and and back in. You just need to hit apply in the in game options menu...

That's some pretty nice bug fixing

Another Edit:
While the jle fix does work for the 7.0.5.0 client, it doesn't work for the old client because the
change to '817C240458020000' switched the resolution check from 0x2003 (03 20 means 800 in decimal) to 0x5802 (02 58 means 600 in decimal)
which causes the game window size to start with 640x480 because osi switched the order of the resolution like you've found out.
To get the wanted game size resolution it's needed to hit "apply" in the ingame options every time uo is beeing restarted or live with some black rubbish around the log in box and use the jmp instead of jle.
 

Jeff

Lord
Its been reported in more then 3 threads now. Zippy is gone, I'll tell Mark about it, but no promises.
 

evilgoat

Wanderer
DASavant;828008 said:
While the jle fix does work for the 7.0.5.0 client, it doesn't work for the old client because the
change to '817C240458020000' switched the resolution check from 0x2003 (03 20 means 800 in decimal) to 0x5802 (02 58 means 600 in decimal)
which causes the game window size to start with 640x480 because osi switched the order of the resolution like you've found out.
To get the wanted game size resolution it's needed to hit "apply" in the ingame options every time uo is beeing restarted or live with some black rubbish around the log in box and use the jmp instead of jle.

Yeah, I was thinking, just change the cmp to some number thats bigger than what the height/width will ever be, like 10000, but still lower than the memory address, then it should work for either (eax = height or eax = width).
 

Coragin

Sorceror
What about those of us who go above and beyond 800x600? I run at 1152x864. Oops was unchecked.

Never had a problem I could not figure out, but thank you, I registered now, and greetings from me. :)

All fixed.

Do I need to run cheat engine until Razor is updated?
 

superslayer

Wanderer
You'll prob want to at each startup ya, small hassle for a large screen. With cheat engine, you can save the changed value locations and give them an name so you have them at your hands at each startup. Simply apply the new values, then fire away.
 
Top