Ultima Online v1.25: The Original CD

For ideas on how to make Second Age a better shard. Can it get any better? Maybe.
Forum rules
Posts in this forum are expected to be constructive, realistic and civil. Inflamatory or off topic posts will be removed.
Panthor the Hated
UOSA Donor!!
UOSA Donor!!
Posts: 3341
Joined: Mon Sep 14, 2009 6:12 am
Location: Palestine
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Panthor the Hated »

Batlin!

The dude was actually extremely fast to get back to me. I am entirely unfamiliar with RunUO internals - I haven't worked with any emulators since Sphere .54 back in I don't know what year. I'm going to look at the current RunUO release and see if I can follow the information I was given, however I'll also post the reply I got since we have some RunUO experts that hang out here. If you have anything to add that might help get RunUO working with the 1.25 client please chime in.
Greetings,

It has been a while since I've touched this part of the code but let's see what I can scrounge from my archives...

I can tell you it takes quite a bit to get it going as several packets have to be reviewed, but if you have some previous knowledge in working with UO packets it should take at most 2 days of fiddling around to get it working.

In the end I decided against using 1.25 on my server, the lack of the black border and other features were too much. I went with 1.25.37g which is a t2a version, in fact the latest version I could find that still had the code for the original chest opening screen, albeit it wasn't being used by the client but it was still there so a quick hex edit and it was restored.

Below I'll use snippets of code from my own version, they won't be the same as what's in stock runuo but they will get my point across:

1.25 encryption keys are:

Code: Select all

new EncryptionKey("1.25", 0xF1A372D5, 0x3A1FD527, loginEncryptionType.Client_1_25, gameEncryptionType.SameAsLogin),
as you can see the login and game server use the same encryption, unlike later clients.

And here is the 1.25 encryption function:

Code: Select all

                case loginEncryptionType.Client_1_25:
                    {
                        uint table1 = 0, table2 = 0;

                        for (int i = 0; i < length; i++)
                        {
                            buffer[i] = (byte)(buffer[i] ^ m_CurrentKey1);

                            table1 = m_CurrentKey1;
                            table2 = m_CurrentKey2;

		                    /* simple rotary crypt */
		                    m_CurrentKey1 = ((table1 >> 1) | (table2 << 31)) ^ m_EncryptionKey.Key2;
    	                    m_CurrentKey2 = ((table2 >> 1) | (table1 << 31)) ^ m_EncryptionKey.Key1;
                        }
                        break;
                    }
Once you get the server recognizing the client encryption(or just remove the encryption from the client) you will still need to change several packets before the client can actually connect and move around the world.

Firstly the login, character creation and enterworld packets must be modified for the client to even get to the server list and then into the game. For this purpose I recommend you get your hands on some old UO packets references, the source code for some old versions of UOX3 have the info you need, I think some web pages do too, a good way here is to get a packet monitoring software like UOLog and see what packets cause the client to hang and then fixing them till it just works. Remember that if the UO client gets a packet it doesnt recognize(either unexpected ID or unexpected length) it will simply stop receiving any more packets and just hang there without doing anything.

You will also have to remove some packets from runuo, like the advanced particle effects, buff system packets and etc. I dont remember the specifics for 1.25 as I went with 1.25.37g as I mentioned earlier, there are some differences between them but much fewer than from them to the most recent versions.

If something I just wrote is not clear enough or you have any more questions feel free to contact me again.
Hail Dekaru!

I'm currently trying to get any emulator to work with the original release UO client (1.25) and my travels brought me to a thread you posted back in 2009 saying you had gotten some early clients to work with RunUO. Sadly no one indulged you enough to get any useful information posted and I couldn't find any shard websites that were related to your name.

Can you share any information you have that may help me connect a version 1.25 client to a RunUO server? Or perhaps how I could patch the client encryption on the 1.25 client? I have some old emulators (oldest I have in my possession is Graysvr 37o, which wants 1.25.37 or later to connect) that might work if I can patch the encryption.

Thanks for your time,

uuang.

Panthor the Hated
UOSA Donor!!
UOSA Donor!!
Posts: 3341
Joined: Mon Sep 14, 2009 6:12 am
Location: Palestine
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Panthor the Hated »

Batlin wrote:Panthor,

I've got a patched 1.25.35 on JoinUO: http://www.joinuo.com/forums/viewtopic.php?f=32&t=644

Probably the encryption in there is similar to 1.25.37. If-so it can be disabled easily. If you have that client for download somewhere I can look at it and hopefully patch it.
packets.dll looks like a great stepping off point for this, should make it easier to get the client to work without too many mods to RunUO. This is awesome. Thank you sir.

User avatar
Batlin
wobble llama
wobble llama
Posts: 512
Joined: Fri Dec 19, 2008 4:32 am
Location: Ultima Universe

Re: Ultima Online v1.25: The Original CD

Post by Batlin »

Well, the packets.dll is to make the demo work with post-demo clients. You're doing the reverse, making RunUO work with old clients.

But I'll share you some experience with the old packets you will need to modify RunUO.
Firstly the login, character creation and enterworld packets must be modified for the client to even get to the server list and then into the game.
In regards to login: The client send 0x80 (Account Logon). You must then reply with 0x81 (Character List). The client will send 0xA4 which you have to ignore. 0x00 is used to create a new character but the old clients do not support Pants & Shirt color. I'm unsure in what version those 2 packet variables were introduced. If the player selects an existing character from the list the client will log in with that one using packet 0x5D.

This is a good old packet guide, http://jerrith.com/projects/JUOPackets.doc However packet 0x81 is missing! Here's how it lookes like in the demo (it's a packet of dynamic length):

Code: Select all

14:29:35.0963: Server -> Client 0x81 (Length: 387) (socket: 0x0000BEEF)
        0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
       -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --
0000   81 01 83 01 CD 41 76 61  74 61 72 00 00 00 00 00   .....Avatar.....
0010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0050   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0060   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0090   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00A0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00B0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00C0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00D0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00E0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00F0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0100   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0110   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0120   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0130   00 01 00 42 72 69 74 61  6E 6E 69 61 00 00 00 4F   ...Britannia...O
0140   63 6C 6C 01 00 4F 63 6C  6C 6F 00 00 00 42 6F 75   cll..Ocllo...Bou
0150   6E 74 69 66 75 6C 20 48  61 72 76 65 73 74 00 00   ntiful Harvest..
0160   00 20 00 00 42 6F 75 6E  74 69 66 75 6C 20 48 61   . ..Bountiful Ha
0170   72 76 65 73 74 00 00 00  20 00 00 00 75 70 64 61   rvest... ...upda
0180   74 65 2E   
I'm unsure if client 1.25.37 follows the exact login pattern as 1.25.35, I'll need to verify that.
+ORC: If you give a man a crack he'll be hungry again tomorrow, but if you teach him how to crack, he'll never be hungry again.
chumbucket: I don't collect pixels.

Never trust the client. It's in the hands of the enemy : UO Demo internals @ JoinUO

User avatar
rouss
Posts: 414
Joined: Wed Apr 15, 2009 12:16 pm

Re: Ultima Online v1.25: The Original CD

Post by rouss »

Perhaps it is possible to connect to UODEMO server with said client?
Chesapeake Nov. 1998 — July 2000
Second Age Feb. 2009 —

User avatar
Derrick
Posts: 9004
Joined: Thu Dec 13, 2007 7:49 pm
Location: Cove
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Derrick »

rouss wrote:Perhaps it is possible to connect to UODEMO server with said client?
Aye, this is currently being worked on.
It's really nice to see these topics get some attention, although to some extent well beyond the technical focus of the Second Age forums. The JoinUO Client forum is a great place to discuss the stuff, post information etc. I'm not suggesting this thread be killed, it's just that I know it's going to get buried in here, and the JoinUO Forums may be a better place for this information.

If we need additional subforums over at joinUo, let me know.
Image
"The text in this article or section may be incoherent or very hard to understand, and should be reworded if the intended meaning can be determined."

User avatar
Bicchus Dicchus
Posts: 156
Joined: Mon Jan 10, 2011 3:21 am
Location: Green Acres

Re: Ultima Online v1.25: The Original CD

Post by Bicchus Dicchus »

I agree. It was my intent when I posted this badboy to add it to a repository of UO information, game data, etc.

Derrick, I don't reckon there's a way we can move or copy this thread to JoinUO? It does have some informative words, so it'd be a shame to lose it completely.

EDIT: I have made a topic in JoinUO. You're all welcome to contribute to it.
http://www.joinuo.com/forums/viewtopic.php?f=28&t=645

-Bicchus Dicchus
Image

User avatar
Corbin
Posts: 872
Joined: Tue Feb 02, 2010 12:18 am

Re: Ultima Online v1.25: The Original CD

Post by Corbin »

Looked at a lot of the art work. Much of it is the same but some is different. Would be cool if we had the ability to add a lot of it to UO since it's technically accurate. :)
Image
Pacific (98-02) - Mystic of FL
Catskills (03-08) - Roo Avery of VIT, T^B
UOSA - Amos Trask/Roo Avery of WTC

Panthor the Hated
UOSA Donor!!
UOSA Donor!!
Posts: 3341
Joined: Mon Sep 14, 2009 6:12 am
Location: Palestine
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Panthor the Hated »

This is a mission of mine until I get lazy.

User avatar
Bicchus Dicchus
Posts: 156
Joined: Mon Jan 10, 2011 3:21 am
Location: Green Acres

Re: Ultima Online v1.25: The Original CD

Post by Bicchus Dicchus »

I've extracted all the gumps, arts, textures, and the anims regarding the childer. Will be posting updates regarding finds on the new thread: http://www.joinuo.com/forums/viewtopic.php?f=28&t=645

-Bicchus Dicchus, late for tacos with girlfriend
Image

Godsend
Posts: 86
Joined: Wed Feb 18, 2009 2:27 am

Re: Ultima Online v1.25: The Original CD

Post by Godsend »

You know I just remembered something that I am kicking myself for now. I used to have the old GM programs for the original UO alpha and beta. Only problem is I forgot about them and my girlfriend made me get rid of my old computer hardware that was cluttering up the back room in my house a few months ago. The hard drive had many problems and may have been cleared, but I am sure if I still had it one of your knowledgable people may have been able to salvage something.

User avatar
Derrick
Posts: 9004
Joined: Thu Dec 13, 2007 7:49 pm
Location: Cove
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Derrick »

Thanks for the post over there. No, there's sadly no easy way to move this over to JoinUO, the website is completely seperate from UOSA.
Image
"The text in this article or section may be incoherent or very hard to understand, and should be reworded if the intended meaning can be determined."

User avatar
Bicchus Dicchus
Posts: 156
Joined: Mon Jan 10, 2011 3:21 am
Location: Green Acres

Re: Ultima Online v1.25: The Original CD

Post by Bicchus Dicchus »

I blame Bob Saget.

-Bicchus Dicchus
Image

User avatar
Akanigit
UOSA Donor!!
UOSA Donor!!
Posts: 108
Joined: Sun Dec 14, 2008 3:04 am

Re: Ultima Online v1.25: The Original CD

Post by Akanigit »

I would really like to fix the paperdoll and the character creation screen. I know it's not quite era accurate but adding the mailbag and in game IRC chat has always been some crazy dream of mine.I remember the mailbag being there but not working,the chat did work on OSI and for some reason I think it works on here too but you have to add the shortcut. I think getting the era accurate gumps in and the accurate paperdoll would be a fantastic project. Also I posted this last year but a fellow over here
http://www.uoorigins.com/files/PreT2APatch.zip created a preT2A art patch.

Panthor the Hated
UOSA Donor!!
UOSA Donor!!
Posts: 3341
Joined: Mon Sep 14, 2009 6:12 am
Location: Palestine
Contact:

Re: Ultima Online v1.25: The Original CD

Post by Panthor the Hated »

Did the mail bag ever work? I just used to drop it on everyone. It was funny.

User avatar
Akanigit
UOSA Donor!!
UOSA Donor!!
Posts: 108
Joined: Sun Dec 14, 2008 3:04 am

Re: Ultima Online v1.25: The Original CD

Post by Akanigit »

Panthor the Hated wrote:Did the mail bag ever work? I just used to drop it on everyone. It was funny.
I think around Feb. of 99 is when it stopped working, I should search around and find out for sure. I just know the in game IRC chat still functioned and you could make private rooms. Even though the mailbag did not work in our T2A timeline I think since it was there, and was somewhat of a half functioning feature it would not hurt to implement. It would at least make players communicate from within the game more often than venturing on the forums or other outside forms of communication. Also since the in game uo chat was just an irc client would it be possible to link the ingame chat to the irc chat for secondage?

*Edit: Client Patch 1.26.0b Sep 2 1999 7:02AM CST

You will no longer automatically take a step forward after logging onto a shard.
Manually targeting yourself will not set you as the Last Target.
The arm/disarm macro for the right arm will now work properly. You will be able to rearm after using an item (such as a potion or door).
Players with older clients (non T2A) will now have the new style options menu.
Deleting the messenger.log file from your UO directory will stop the Ultima Messenger from logging all of your messages.

So it seems to have been working up till then. Foggy memory!

Post Reply