[GUIDE] 9Disciples ndreg.xrg update

01/26/2011 16:57 Edarax#1
First of all, I'm not the maker of 9Disciples and I don't know if this info is the only one needed to make it work, so may be more things to change in other patches. If you find something else, post it here so I can change this guide.
Also, english is not my native language so it's possible that this guide contains some explanations that you can't understand. In that case tell me so I can change it to be more explicative.
This guide may contain some technical words that are explained at '3. Technical Words.'.
This guide is only for 9Dragons thai.


1. Programs needed.

I used an Hexadecimal editor, but I supose that you can use any text or datafile editor. The reason I used an Hexadecimal one is to make sure I don't lose any byte, because it results in a non-functional ndreg.

This is the program I used, it's pretty simple to use:

[Only registered and activated users can see links. Click Here To Register...]


2. How to.

ALLWAYS DO A BACKUP OF THE FILES THAT YOU'RE GOING TO MODIFY.

a) Open 2 windows of XVI32 (or whatever you are using).

b) In the first one open the modified ndreg that worked for the last version, and in the other one open the new ndreg. You will get something like this:

[Only registered and activated users can see links. Click Here To Register...]

c) If you look at the position selected in the picture bellow, you'll find that it have a diferent string, thats the game version, if you change it to a previous one, it will repatch again, but thats not what we are searching for, just if you are curious.

[Only registered and activated users can see links. Click Here To Register...]

d) Now take a look at this position (again in the picture bellow), you will see that it's diferent in each file (till the repeated Ü), and also it repeats later the same string (both circled in the picture). All you have to do is copy both equal strings of the 9Disciples ndreg to the new patch's one, and you're done. (Now if you know how to do it you can stop reading because there's nothing more to do).

[Only registered and activated users can see links. Click Here To Register...]

e) At the window of the new patch's ndreg, select the position selected in the previous picture, then go to 'Edit' -> 'Overwrite string'. Check the 'Hex String' option and write there the Hex string of the other ndreg (it's shown at the picture). Click OK. Do it for the second repeated string too.

[Only registered and activated users can see links. Click Here To Register...]

f) Now just save this ndreg (make sure it is named ndreg.xrg and it's in the D9 directory). Run 9Disciples, run D9, have fun.


3. Thechnical words.

I'll try to explain it easy so anyone can understand.

a) Hexadecimal/Hex. It's another way to count numers, you are used to count from 0 to 9, and this one counts from 0 to 9 and then from A to F, so it makes a total of 16 diferent numbers. There are reasons to use this, it's not just to make life harder or something like that, if you wanna know why PM me or wiki it.

b) Backup. To make sure you keep a file in good condition, you should do a copy of it before modifying it, so if you change in there something you shouldn't, you can use the copied file to get it back working and try to modify it again (with a new copy of course).

c) String. It's how we denominate a chain of characters, hexadecimal values, etc. So I.E. 'hello' -> string of 5 characters (there are special characters that are used for programming more than just reading, so they don't show up in the file if you open it with Notepad or something like that, but they are in a Hex string in XVI32).


4. Credits.

a) Saweet for doing 9Disciples.

b) Epvp for hosting this forum.

c) Me for doing this guide.

d) You for reading.


If you liked it or it helped make sure you say thanks, also you can PM me or post here if you have any question or something to remark.

If you're having troubles to get it working you can download the attached version (patch 32 update).
01/26/2011 19:12 flashmansonic2#2
wooow thx alot nice thread i am gonna try it
01/26/2011 21:00 RzrBck#3
Nice!

Mind explaining
what exactly is changed? Or did you just compare - and make them 'the same'?
I wonder what's the "magic" (in terms of what function/how u've traced it) are patched nd why :)
01/26/2011 21:21 Edarax#4
First I tried to just compare both of the ndreg with the notepad and copy-paste different parts that seemed different, but D9 was not executing, so then I tried with the Hex editor just in case there were special chars. But when I changed one part, I found out that it was the version and up there you can read "_xkern_ndvinfo" and I though it could be 'nine dragons version info', and if you look at what is needed to change it says "ndc info" so I tought that would be 'nine dragons connection info', and I realized that there were two strings that were different for each file and equals in the same file, I changed them and it worked.
I don't really know what that strings mean, but I supose it is some info that have more than a 255 value, so when readed in chars it results in some "ilogical" info, maybe it's an int (or whatever) value, so maybe there are 3 o 4 values that guides the connection, or maybe not... would be good if someone finds out what they really mean.
01/26/2011 21:40 RzrBck#5
Quote:
Originally Posted by Edarax View Post
First I tried to just compare both of the ndreg with the notepad and copy-paste different parts that seemed different, but D9 was not executing, so then I tried with the Hex editor just in case there were special chars. But when I changed one part, I found out that it was the version and up there you can read "_xkern_ndvinfo" and I though it could be 'nine dragons version info', and if you look at what is needed to change it says "ndc info" so I tought that would be 'nine dragons connection info', and I realized that there were two strings that were different for each file and equals in the same file, I changed them and it worked.
I don't really know what that strings mean, but I supose it is some info that have more than a 255 value, so when readed in chars it results in some "ilogical" info, maybe it's an int (or whatever) value, so maybe there are 3 o 4 values that guides the connection, or maybe not... would be good if someone finds out what they really mean.
Ty for the elaboration :) Appriciated
01/26/2011 22:47 sumon#6
Question, What if you dont have a ndreg that never worked.
For example, the GER version doesnt have a ndreg for 9Disciple.
How and what am I supposed to change on the ndreg GER?
01/26/2011 23:35 Edarax#7
I don't know if it's possible to make it work for other versions just by changing this and the 9Disciple config.
But you should just get the info from the ndreg of 9Disciple thai and put it in the 9d ger ndreg, it should have almost the same text, if you don't get any results upload the ndreg of ger version and I'll take a look at it.
01/26/2011 23:45 DeathByMoogles#8
Wow, I must say this thread gets an official DBM approval.
Good fucking job, mate.

One of the few threads I've seen that were actually worth reading.
Keep it up, you seem to know what you're doing!
01/27/2011 01:46 Edarax#9
Thanks, just trying to help :P

@sumon: I tried to make 9Disciples work with G1 versions, and got a working ndreg, also I changed the 9Disciples config with the IP's and ports of G1 and I managed to log in and play, but 9Disciples just don't load, If i'm not wrong, each version uses it's own "packet format" so 9disciple "don't understand" them. I may be wrong cause i'm not much familiarized with packets.
Anyways I think that you should need to edit the code of 9Disciples to make it work for another versions.
01/27/2011 02:14 DeathByMoogles#10
Quote:
Originally Posted by Edarax View Post
Thanks, just trying to help :P

@sumon: I tried to make 9Disciples work with G1 versions, and got a working ndreg, also I changed the 9Disciples config with the IP's and ports of G1 and I managed to log in and play, but 9Disciples just don't load, If i'm not wrong, each version uses it's own "packet format" so 9disciple "don't understand" them. I may be wrong cause i'm not much familiarized with packets.
Anyways I think that you should need to edit the code of 9Disciples to make it work for another versions.
That's absolutely right.
01/27/2011 09:10 sumon#11
Thanks for the answer and confirmation.
Well. Iwont try it then since I am not familiarised
with 9Disciples and packets as well.
Thanks.
01/27/2011 12:27 Edarax#12
No problem, I'll be trying a bit more, but I have no hope on good results XD
01/27/2011 17:40 gvlez#13
don't works
01/27/2011 18:02 Edarax#14
Be sure you do it step by step, it works for D9 thai, version 30 -> 31.

Also, could you tell me if you get some error or what problem do you have to get it working? Just saying "don't work" don't help much to understand the problem...
01/27/2011 19:47 gvlez#15
error "failed to get the host name"