Please note this thread is long and some of the posts are outdated. I'll be making a new thread that is more cleaned up and organized on the next release, so please be patient in the mean time. If you need any help, just send me a PM!
(w/ source) -- Open the 'bin' folder for the executable!
The rest of this post is OLD now, please read the post linked above.
About
It's finally done and ready for some beta testing! edxSilkroadLoader is a generic loader for all Silkroad versions (non-private server of course). It will apply the following patches to the game:
- Multiclient: Allows multiple instances of the game and login
- Zoomhack: Infinite zoom
- English Patch: Patches foreign languages to English so no PK2 edits are needed.
- Swear Filter: Allows chat swearing.
- Nude Patch: Extra layer of clothes removed.
In addition, the project is setup to be entirely PK2 driven and auto-update on client patches. Since this is a new project I'd suspect some auto update features might break, but they can be fixed.
Testing Information
jSRO - No testing done since I cannot get the jSRO files and they have an IP ban on all non-Japense IPs. I'm no too worried about support for this version. Need: Anyone who has jSRO and plays it to test it all. I also need the jSRO DIVISIONINFO.TXT file from Media.pk2.
kSRO - Testing up to login server done so far. I can't actually login since I have to setup my computer to allow entering Korean without crashing the client. Need: people to login and verify it works.
cSRO - Fully tested and no problems. However, the cSRO client is compiled differently than the other SRO versions, so I had to introduce some hacks in my code to correctly calculate the addresses.
iSRO - Fully tested and no problems so far. Generic user testing is needed.
vSRO - Fully tested and no problems so far. Generic user testing is needed.
tSRO - Fully tested and no problems so far. Generic user testing is needed.
Program Information
edxSilkroadLoader is two parts: a loader and an injected DLL. The loader will allow you to choose your Silkroad directory via choosing the sro_client.exe in the folder. Once the directories are set, you can select which one you want to launch. For each version, you will see information on the Language, Country, and Version. You will then be able to select the Division server and then the Login Server the client connects to.
The DLL contains generic byte signatures to search for in the client that is being loaded. Some patches are complex like multiclient and English patch while others are more simple like nude and zoom. Additional patches will be looked into the future for even more power, but for now it's good to start simple and work out any initial flaws in the program.
For testing purposes, the DLL has a debugging console enabled, so you will have some extra windows open if you run a lot of clients. This will be disabled later but for now it's important to help figuring out if any patches fail. I've tested all Silkroad versions myself except for jSRO, but I am on Windows 7 and things might not work out the same on other OSs.
So, if you have any problems, please give me as much information as you can!
The project is also compatible with my recently released guides on edxSilkroadProxy and the edxDetour. If you have an edxSilkroadProxy process running and the proper edxDetour data file in the Silkroad directory it will detour the connect for you. If you don't have the edxDetour file it won't detour and if you aren't running edxSilkroadProxy, no detour is made either. I'll add precreated detour files to the edxDetour thread for those interested.
Project Information
I came up with this project idea after working on (which will no longer be under development as this project replaces it). After updating my PK2 API a few weeks back for my edxNVMViewer project and just the other day to fix the bugs, I realized I could easily make a loader data driven rather than trying to hard code the connect addresses. From there, everything else just fell into place. I rewrote my byte signature searching code so it's more powerful and easier to use now and it's worked out nicely.
This project will be open source and free to use and modify as you need after the beta testing is done. Right now I need to make sure there are no serious flaws with the project (need testers!) and then I need to clean up the code a bit as it's really messy and not well documented at the moment. I'm hoping to get people to test today and tomorrow and then after the inspections if there are any client updates, make sure nothing just falls apart.
Screenshots
Download
Attached - (2 false positives)
The files aren't packed and still have Visual Studio debug information in them if you want to look through them. I suspect there is too much "generic" code to get these to compile with no results.
I'm open to all suggestions, comments, and bug reports. Just remember the tool is still in a Beta stage and can use some aesthetic improvements.