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!

NEW UO Patches Repository

HellRazor

Knight
It may be because they switched to a new patch program effective with 7.0.24.0 (which is the classic client version they currently have up for download). Clients before that one used a program called RTPatch. I think that they are using something different now. They must figure that anyone with an older CD who contacts them can just be referred to download the newest version from the UO web page.
 

clarissa

Sorceror
Not working,

here is my vercfg.cfg:


And here is log from UO Auto Patch:
ok I also installed a new client into my ea games folder. It creates a shortcut on your desktop when it installs. Go to your game folder first if that one does not patch then use the shortcut on your desktop. None of us have had an issue we all were able to patch up.
 

Xeroxxx

Traveler
It may be because they switched to a new patch program effective with 7.0.24.0 (which is the classic client version they currently have up for download). Clients before that one used a program called RTPatch. I think that they are using something different now. They must figure that anyone with an older CD who contacts them can just be referred to download the newest version from the UO web page.

Just asked EA some days ago.


Von: xxxxxx [mailto:[email protected]]
Gesendet: Montag, 20. Mai 2013 16:27
An:
Betreff: RE: Ultima Online Patching

The old patcher bit the dust so you need to patch from the web site. =)

Mesanna

From: xxxxx [mailto:xxxxxxx]
Sent: Sunday, May 19, 2013 7:48 AM
To: xxxxxxx
Subject: Ultima Online Patching

Hey there,
found one of my old Ultima Online T2A discs from the old days. Isn’t it possible to patch that game anymore? Tried to change in vercfg from compassion.owo.com to patch.uo.eamythic.com and its still not working L

Regards
 

seanandre

Sorceror
Has anybody ever tried to grab the patcher from the new client and run it and see if it'll accept the old patch files and patch the old client? There's an idea.
 

Desttro

Traveler
Has anybody ever tried to grab the patcher from the new client and run it and see if it'll accept the old patch files and patch the old client? There's an idea.

Not working for me, but I've found something really exciting. I've found UO client database SVN of all patched up clients here: http://svn.twuni.net/uoclient/t2a/tags/by-version/ on this forum http://www.joinuo.com/forums/viewtopic.php?f=28&t=647

There are all patched clients and data of clients from 1.25.35 to 7.0.2.2

I think this is good news for me and for people, that want to create shard for lower clients. Let's install SVN and download!
 

Simon Omega

Traveler
I think the only patches I have are mondain's legacy up to 7.0.23...

That really saddens me as I wanted to have AoS thru 7.0.23. What patches do you have currently?

It's been some time since I cracked open OllyDBG. Maybe the phone home check can be by passed?
 

seanandre

Sorceror
Simon, could you please upload all of the Mondain's Legacy patches you have to the FTP? Those are ones that we really need as well. They're not even on there.

Destro, I have uploaded a couple of the SVN clients from that server in your post above. But I don't think I'm going to put every single one of them on the FTP, because they're so large, and that would take up all of my much needed space that we need for this.

The clients of note that I have uploaded are as follows:

5.0.9.1
6.0.0.0

I like both of these clients, because if anybody has an old 1.0 server you would like to play on, at least with 5.0.9.1 you can still use the 3D client. And the 6.0.0.0 client is the exact version that our family server uses that we play with our kids on. Thanks for posting those though, they're very useful.
 

Simon Omega

Traveler
Evidently I was stupid about what version is actually UO:ML. I'll tell you what I have right now.

I have Installers
UOSA_Client_Setup (5.x.x something)
6.0.1.10 (8th Age / 9th Aniversary)
7.0.10.3 (I thoght this was Mondain's Legacy).
7.0.24 (Not very Helpful).

All patches for:
7.0.11
7.0.12
7.0.13
7.0.14
7.0.15
7.0.16
7.0.17
7.0.18
7.0.19
7.0.20
7.0.21
7.0.22
7.0.23
I have the 7.0.24 Patch, but it's not very helpful.

Those are all I can find ATM. Will they help?
 

Simon Omega

Traveler
I also have the original Discs for:
Renaissance
Third Dawn
Lord Blackthorn's Revenge
Age of Shadows
7th Aniversary
Samuri Empier

And I rolled my own 7.0.23 Installer Package.

Just as an FYI. No Patches.
 

seanandre

Sorceror
We're not looking for install files. I'm only interested in maintaining a patch repository incase somebody finds a way to extract them. If anybody has ANY of the Mondain's Legacy patches, please upload them.

Thanks
 

Simon Omega

Traveler
UOPatch I opened in a debugger last night and watched it execute. It jumps, calls and spawns about 7 processes so much, I don't know if I can just skil the network check.

I seem to identify RTPatch version 7.00 in the UO 7.x.x.x Clients.

I'm having trouble locating information about how to interface with the RTPatch System.

The RTPatch system relies on Patchw32.dll, UO included this with all the Patchers. I think all the required functions are contained in the DLL. It seems to be a CDLL. I tried to load it in Python (using ctypes) but received mixed errors about it not being a Callable Library.

I've tried interfacing with it in C#, but I know more about a sharks blood pressure than I do about C#.

If anyone wants to help investigate: http://www.pocketsoft.com/rtpatch.html they offer a trial version of the system, but I think the trial version is 12.00.

They say the RTPatch System version 11 creates a Service during execution called RTPatch I/O Service. Calls are sent to this to do the bit/byte level file updates. This requires running as Administrator rights. I'm thinking this might also make the 12.00 trial version a bit out of spec for the 7.00 that UOPatch uses. But that is only my assumption.

I found one forum barried on the net where years ago a guy claimed he was able to use the trial to apply UO patches. Again years ago and no proof or code.

So, yes people are actively trying to find solutions. I'll share my findings and hope someone with more free time can help the cause as well. :-D
 

Praxiiz

Sorceror
Here's a quick and dirty c# app that you can toy around with. It's not polished, and probably really buggy.

It listens on port 55 on local address 127.0.0.1 all hard coded. Again, this was literally just thrown together. To send bytes, just enter them and click send. Make sure to select the client in the right pane before clicking send or it won't actually send anything.

I am not working on this. I am releasing it into the wild. Hopefully someone will use it as an example or turn it into something more functional.

To get started:

Change your vercfg.cfg to
Code:
0
.
patch\
127.0.0.1 55
0
701 460
www.runuo.com

Then bring up the app, and run patchuo.exe.


Here are some of the experiments I've tried with it. I can get it to save off files into the patch folder, but beyond that I haven't really had much luck.


start 15
server 01 protocol
server 01 command 1= 2= connect on different ip address

Code:
patcher                            server
00 00 00 15               
                                00 00 00 01
                                00 00 00 01
                                00 00 00 00 error message

Code:
00 00 00 15
                                00 00 00 01
                                00 00 00 01
                                00 00 00 01
00 00 00 08 57 69 6E 33 32 5F
4D 4C 00 00 00 00                              version string
                                00 00 00 00 patch session complete

Putting the version binary into a hex editor is a nice lazy way to convert it to ascii:

The first 4 bytes is probably an Int32 specifying the length of the version string.



I downloaded several different installation packages, and they all seam to have a different version string, I don't know if they're unique to versions or unique to installation packages.

Code:
00 00 00 15
                                00 00 00 01
                                00 00 00 01
                                00 00 00 01
00 00 00 08 57 69 6E 33 32 5F
4D 4C 00 00 00 00
                                00 00 00 01          filename length
                                44                d    filename
                                00 00 00 01          1 byte file length
                                00                        file contents
                                00 00 00 01          confirm?
00 00 00 02
00 00 00 01 43 00 00 00 00
                                00 00 00 01







 

Attachments

  • test.png
    48.2 KB · Views: 208
  • test2.png
    97.8 KB · Views: 206
  • PatchServer.zip
    77.5 KB · Views: 35
  • test3.png
    30.4 KB · Views: 204

seanandre

Sorceror
Unless this actually makes the patches extract, I'm afraid it's not only of any use to me, but it's all a bunch of gobble-de-gook and I wouldn't know what to do with it anyway.
 

Morgan

Sorceror
Found deep in the belly of Google beast


------------------------{Patch Server Protocol---
Connecting to the patch server and issuing requests must follow a specific order.
First it connectes to compassion.owo.com:8888 (this can be changed in vercfg file).
Then send a HelloRequest. The server will respond with a PatchServerTransfer.
Disconnect from compassion and connect to the IP address and port returned to you.
You will then send a HelloRequest to the new server, it will return a NoticeBlock.

Now once you've connected to the patch server and gotten the notice, you may start
looking for patches. First, send a PatchListRequest for the first one, read in the
PatchListData, then send the request for the second version, and read in that data.

Once you have a list of avaliable patches, you can request the actual patch by
sending a PatchDataRequest. You will then receive the PatchData.
When you have finished downloading the avaliable patches, you can apply them,
and resend the PatchListReqiestuntil there aren't any more patches avaliable.

=========={HelloRequest---
Hello Request (4 bytes)
BYTE 0x15
BYTE 0x00
BYTE 0x00
BYTE 0x00


=========={PatchServerTransfer---
Patch Server Transfer (16 bytes)
BYTE 0x01
BYTE[7] (all bytes 0x00)
BYTE[4] IP Address
BYTE[4] Port


=========={NoticeBlock---
Notice Block (variable length)
BYTE 0x01
BYTE[3] (all bytes 0x00)
BYTE 0x01
BYTE[3] (all bytes 0x00)
BYTE 0x02
BYTE[3] (all bytes 0x00)
BYTE[4] Text Length
BYTE[textlength] Notice Data (NULL Terminated)


=========={PatchListRequest---
Patch List Request (variable length)
BYTE 0x01
BYTE[3] (all bytes 0x00)
BYTE[4] Version Text Lenght
BYTE[textlength] VersionText (ie. Win32_UO_Gold)
BYTE[4] Version


=========={PatchListData---
Patch List Data (variable length)
Repeat until done:
BYTE[4] File name Length (0 = done)
BYTE[filenamelength] Filename
BYTE[4] File size


=========={PatchDataRequest---
Patch Data Request (variable length)
BYTE 0x02
BYTE[3] (all bytes 0x00)
BYTE[4] Filename length
BYTE[filenamelength] Filename
BYTE[4] (all bytes 0x00)


=========={PatchData---
BYTE[4] File name length
BYTE[filenamelength] File name
BYTE[4] File size
Repeat until done:
BYTE[4] Block Length (0 = done)
BYTE[blocklength] Block Data
 

Simon Omega

Traveler
Praxiiz, thank you. Using your data I was able to correlate what I was seeing and write a successful hand shake in python, but was stuck at "Server Refused to Send File." I was up late last night trying to get the UPPatch.exe to divulge what it wanted. LOL

Morgan, you may have just found the missing puzzle piece I needed. I tried Google but around page 15 I went "BlAH!".

If you Super Stars want to keep helping I made this post:
http://www.runuo.com/community/threads/community-effort-to-restore-patching.534148/
So we do not dirty up seanandre's post.

He can work on gettin g the patch files here.
We can work on a solution there.

Praxiiz, don't worry about your code. I haven't written anything with a GUI for years so your ahead of me. If we can get something functional, we can also go back and do the house keeping. A lot of people are good at just cleaning code.
 

Simon Omega

Traveler
seanandre I have a proof of concept working (in Python) here http://www.runuo.com/community/resources/uo-patch-server.96/
I'm using github externally, and when I get some time to dedicate to it I can polish it up.

But I have a question for you becasue I need help.

Both Obsidian Fire and myself have zipped up various patch files and backed them up to Disc (CD/DVD). When we extract them, these once good files get a corrupt patch in them. Have you noticed this with zipping patch files?
 

seanandre

Sorceror
Simon, I'm not sure actually. Zipping the patches up should not cause them to be corrupted unless the zip files are corrupt themselves. You're welcome to try downloading them off of the FTP and try them without zipping them. I just hope you don't get corrupt errors from those, because when we set up the FTP and first asked people to start uploading the patches that are there, they were ALL zipped up when we first received them. I had to uncompress them. I certainly hope those are not corrupt. Otherwise this method is totally useless. I myself have never zipped the patch files, but like I said when we first received them, they WERE zipped. Hopefully nothing is wrong with them.
 
Top