Go Back   RunUO - Ultima Online Emulation > RunUO > Utility Support > Razor: The Cutting Edge UO Assistant

Razor: The Cutting Edge UO Assistant Razor is an Assistant program (similar to the popular UOAssist) for player run Ultima Online shards.

Reply
 
Thread Tools Display Modes
Old 02-03-2010, 05:28 AM   #1 (permalink)
Newbie
 
Join Date: Aug 2009
Age: 34
Posts: 97
Default 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...

Last edited by AlphaDragon; 02-03-2010 at 05:46 AM.
AlphaDragon is offline   Reply With Quote
Old 02-03-2010, 10:34 AM   #2 (permalink)
Lurker
 
Join Date: Sep 2009
Age: 24
Posts: 18
Default

yea having the same issues
astealoth is offline   Reply With Quote
Old 02-03-2010, 09:10 PM   #3 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 5
Default

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?
Kalaka is offline   Reply With Quote
Old 02-06-2010, 05:16 PM   #4 (permalink)
Lurker
 
Join Date: Dec 2009
Age: 98
Posts: 7
Default

Yeah, anyone ?
Nemeanlion is offline   Reply With Quote
Old 02-06-2010, 07:33 PM   #5 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 2
Default

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!
Blondie25 is offline   Reply With Quote
Old 02-07-2010, 12:23 AM   #6 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

It just seems the location in the client's memory for the resolution has changed, was 0x006C660C for width, and is now 0x006C9614.
evilgoat-hybrid is offline   Reply With Quote
Old 02-07-2010, 05:46 PM   #7 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 2
Default

So can this be changed back to fix the resolution?
Blondie25 is offline   Reply With Quote
Old 02-08-2010, 06:52 AM   #8 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

Quote:
Originally Posted by evilgoat-hybrid View Post
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.
evilgoat-hybrid is offline   Reply With Quote
Old 02-08-2010, 09:01 PM   #9 (permalink)
Administrator
 
Zippy's Avatar
 
Join Date: Aug 2002
Location: Baltimore, MD
Age: 26
Posts: 4,890
Default

Impressive, evilgoat-hybrid.

Too bad I don't have any build or disassembly tools installed in Windows.
__________________
Zippy, Razor Creator and RunUO Core Developer
The RunUO Software Team

"Intuition, like a flash of lightning, lasts only for a second. It generally comes when one is tormented by a difficult decipherment and when one reviews in his mind the fruitless experiments already tried. Suddenly the light breaks through and one finds after a few minutes what previous days of labor were unable to reveal."
~The Cryptonomicon

Zippy is offline   Reply With Quote
Old 02-09-2010, 12:53 AM   #10 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 5
Default

Well crud I wish I knew how to do that!

good work man
Kalaka is offline   Reply With Quote
Old 02-09-2010, 09:59 AM   #11 (permalink)
Lurker
 
Join Date: May 2008
Age: 26
Posts: 1
Thumbs up 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!
AxelDominatoR is offline   Reply With Quote
Old 02-09-2010, 11:47 AM   #12 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 3
Default

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.
DASavant is offline   Reply With Quote
Old 02-09-2010, 12:10 PM   #13 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

Quote:
Originally Posted by DASavant View Post
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.
evilgoat-hybrid is offline   Reply With Quote
Old 02-09-2010, 12:28 PM   #14 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 3
Default

Quote:
Originally Posted by evilgoat-hybrid View Post
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...
DASavant is offline   Reply With Quote
Old 02-09-2010, 12:30 PM   #15 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

Quote:
Originally Posted by DASavant View Post
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.
evilgoat-hybrid is offline   Reply With Quote
Old 02-09-2010, 02:05 PM   #16 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 3
Default

Quote:
Originally Posted by evilgoat-hybrid View Post
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.

Last edited by DASavant; 02-09-2010 at 03:25 PM.
DASavant is offline   Reply With Quote
Old 02-09-2010, 08:15 PM   #17 (permalink)
ConnectUO Creator
 
Join Date: Jan 2004
Age: 29
Posts: 6,076
Default

Its been reported in more then 3 threads now. Zippy is gone, I'll tell Mark about it, but no promises.
__________________
Jeff Boulanger
ConnectUO - Creator/Core Developer
ConnectUO Swag/Merchandise

Please do not pm me for support. If you are having issues please post in the appropriate forum. Thanks for your continued support of both ConnectUO and RunUO
Jeff is offline   Reply With Quote
Old 02-09-2010, 08:28 PM   #18 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

Quote:
Originally Posted by DASavant View Post
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).
evilgoat-hybrid is offline   Reply With Quote
Old 02-09-2010, 09:13 PM   #19 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 2
Default

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?
Coragin is offline   Reply With Quote
Old 02-09-2010, 09:20 PM   #20 (permalink)
Newbie
 
superslayer's Avatar
 
Join Date: Feb 2005
Age: 32
Posts: 43
Default

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.
superslayer is offline   Reply With Quote
Old 02-09-2010, 10:06 PM   #21 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 2
Default

Quote:
Originally Posted by superslayer View Post
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.
I have the strange feeling like I know you from somewhere...

I just cant put my finger on it though.
Coragin is offline   Reply With Quote
Old 02-10-2010, 02:38 AM   #22 (permalink)
Lurker
 
Join Date: Mar 2004
Posts: 15
Default

Just to be clear though, the correct fix that Zippy/Mark should do...



Razor overwrites the client's original function with that, if they do 'MOV EAX, [ESP+4]', before the push eax/etc (there is room for it), it'll correctly work on all clients, and the options bug will be gone.
evilgoat-hybrid is offline   Reply With Quote
Old 02-11-2010, 06:53 AM   #23 (permalink)
Lurker
 
Join Date: Feb 2010
Posts: 1
Default

Hah! Thank you guys I was looking at the UO client in olly for the longest time trying to figure out why the screen was that way.
Dethbecometh is offline   Reply With Quote
Old 02-17-2010, 08:50 PM   #24 (permalink)
Administrator
 
Zippy's Avatar
 
Join Date: Aug 2002
Location: Baltimore, MD
Age: 26
Posts: 4,890
Default

Quote:
Originally Posted by evilgoat-hybrid View Post
Just to be clear though, the correct fix that Zippy/Mark should do...



Razor overwrites the client's original function with that, if they do 'MOV EAX, [ESP+4]', before the push eax/etc (there is room for it), it'll correctly work on all clients, and the options bug will be gone.
The new release today should fix this issue.

Thanks to Mark for Building, Testing, and Releasing. Thanks to my disassemblers in this thread for making this possible without having UO isntalled or a disassembler.... or even a windows VM.

Some comments in the code indicated that it was supposed to have a mov eax, [esp+4] in there... I'm not sure why it ended up commented out. :-P
__________________
Zippy, Razor Creator and RunUO Core Developer
The RunUO Software Team

"Intuition, like a flash of lightning, lasts only for a second. It generally comes when one is tormented by a difficult decipherment and when one reviews in his mind the fruitless experiments already tried. Suddenly the light breaks through and one finds after a few minutes what previous days of labor were unable to reveal."
~The Cryptonomicon

Zippy is offline   Reply With Quote
Old 02-17-2010, 09:38 PM   #25 (permalink)
Forum Novice
 
Join Date: Jan 2010
Location: In Gisela's Basement
Posts: 115
Default

Quote:
Originally Posted by Zippy View Post
The new release today should fix this issue.

Thanks to Mark for Building, Testing, and Releasing. Thanks to my disassemblers in this thread for making this possible without having UO isntalled or a disassembler.... or even a windows VM.

Some comments in the code indicated that it was supposed to have a mov eax, [esp+4] in there... I'm not sure why it ended up commented out. :-P
I <3 the people who found the issue.

I <3 Mark.

and I <3 Zippy for just making razor when he was a Junior in high school. I'm a junior in high and well... let's just say I would rather die. :P
Cornwallis is offline   Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5