A patch for reducing CPU usage by the Ultima Online Client
Posted: Sun Apr 12, 2009 6:54 pm
Hi guys/girls
I present you here with a sort of tutorial on how to patch the Ultima Online Client.
To understand everything assembler knowledge is required.
Like most UO addicts will have noticed, the client uses a lot of CPU resources when it shouldn't be doing that, for example at the login screen. This annoyed me and I went inside the client to fix this "bug".
At the same time, you will learn a bit about frame-skipping done by the client (when enabled).
Attached is a PDF that explains how I did it + a ZIP with the patch applied to client version 5.0.8.3.
WARNING! Do not apply this patch to any other client out there unless you know what you are doing, this is a binary patch and modifiying the wrong bit/byte will most probably result in (random) crashes!
For version 5.0.8.3:
MD5 of the original unpatched client : fea4323aec8c71f993aad4af812ab1ed
MD5 of the client with Sleep patch applied : 78a963c0fde2bb935c14c75b688fc3f3
If demand is high enough, I could write a universal patcher that will work for other clients based on the fact they all share the same codebase.
Enjoy
I present you here with a sort of tutorial on how to patch the Ultima Online Client.
To understand everything assembler knowledge is required.
Like most UO addicts will have noticed, the client uses a lot of CPU resources when it shouldn't be doing that, for example at the login screen. This annoyed me and I went inside the client to fix this "bug".
At the same time, you will learn a bit about frame-skipping done by the client (when enabled).
Attached is a PDF that explains how I did it + a ZIP with the patch applied to client version 5.0.8.3.
WARNING! Do not apply this patch to any other client out there unless you know what you are doing, this is a binary patch and modifiying the wrong bit/byte will most probably result in (random) crashes!
For version 5.0.8.3:
MD5 of the original unpatched client : fea4323aec8c71f993aad4af812ab1ed
MD5 of the client with Sleep patch applied : 78a963c0fde2bb935c14c75b688fc3f3
If demand is high enough, I could write a universal patcher that will work for other clients based on the fact they all share the same codebase.
Enjoy