Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 13:51

  • Please register to post and access all features, it's quick, easy and FREE!

 

[WIP] Rappelz Epic 4: Revolution Emulator

Reply
 
Old   #1


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
[WIP] Rappelz Epic 4: Revolution Emulator

Good evening my friends,

Herewith I want to share a new project of mine, an emulator for Epic 4.
As I'm someone who started (and really enjoyed) the game at Epic 4, I started developing on an emulator for epic 4. Since I'm not really a fan of literally everything that came after Epic 5.1, I based the project on the Epic I really loved and enjoyed.
Also that means if someone really wants to develop a higher epic server (like an emulator for Epic 9.3 or something) you'll already have the base covered, you'd only need to change the packets and add the new systems.

Anyway, enough talked for now, let me share some nice screens (more information at the end of this section):

You miss the old altar? Yes? I do, too!
You must register and activate your account in order to view images.

And the was amazing too, not just a static image. The only thing bothering me is that I'm not able to skip the intro...



Oh, but before I can skill anything, I'd need to change my job... Just let me really quick...

Ahh, Horizon Bridge, the (which are gone by now :/ )

Anyway, the project isn't finished, obviously, tons of bugs and some stuff missing, but the base is there.

This emulator is written in C++ and obviously now platform independent, that means you will be able to run it on Linux, too!

I took a lot of stuff from Pyrok's old Epic 7.4 emulator and I really have to admit, Pyrok was a f*$&/" beast! I have mad respect for him and his work, now that I've really looked into that stuff.
You really should be glad that he was around when the PServer stuff happened, without him we wouldn't be where we are right now.

So, now the main question: Is the project open source?
Yes, it is. It will(!) be open source once I've got a nice, stable and playable "base". I'm not a fan of giving stuff out which isn't even working properly.
I really don't want to give an ETA right now because one does never know what happens, but let me just say that will be soon (and the people who know me know that I'm impatient af, so if I say soon I really mean soon)!

Anyway, I need the help of you guys.
To fix some stuff, I'd need an unpacked version (that means Armadillo (Professional Version 3.x/4, for the ones curious) and maybe even Hackshield removed, but Hackshield shouldn't be a problem) of the Epic 4 SFrame, I'd need some data (some packets have changed drastically - or the SFrame is just bugged, I don't know) - and I really suck at that stuff

If you really know stuff about programming and/or reverse engineering, message me here in elitepvpers to get in contact, would be great to get some stuff out of that.

If anyone has an UPDATED Epic 4 client (that means not the first epic 4 client out there), message me as well, they changed TONS of stuff in the epic itself (for example they added the auction stuff mid-epic 4, the client I'm using right now doesn't even have it).

Oh, and if you're bored, try to create an RDB Reader for Epic 4 (I'm currently using the database (except skills, did that one myself) from the 5.2 repack from Exile), that'd be damn helpful.

Thanks for reading,

Xijezu

PS: @glandu2, the auth emulator isn't working with the epic 4 client, the one-time-key it receives from the game server isn't the one the auth is expecting (tested that with the epic 5 herlock, too) :P



Xijezu is offline  
Thanks
10 Users
Old   #2
 
elite*gold: 0
Join Date: Aug 2012
Posts: 312
Received Thanks: 252
I hope you re-write how the network and how the class are structured from pyrok...

Because he is good... But his infrastructure was a mess !

Btw nice projet


gr4ph0s is offline  
Old   #3
 
elite*gold: 0
Join Date: Jul 2015
Posts: 205
Received Thanks: 220
I've got to say, me and Guil trashed the entire network side of the code and content management as it was just a mess. I personally believe Pyrok was converting c++ source to c#. But hey I'll never be able to prove it, just don't follow his example because (C++) innovate, c# can do just as good if not better and let's be real there is no true advantage to running on Linux. I can port to Mono and run on linux just as easily :P

P.S. That's why we aimed our emu @ 6.2 because there is an available 7.1 sframe pdb and 6.2 game-server pdb. Makes things immensely easier :P

Good luck.
SilentWisdom is offline  
Old   #4
 
elite*gold: 0
Join Date: Aug 2012
Posts: 312
Received Thanks: 252
But performance speed from C++ and C# is not negligible.


gr4ph0s is offline  
Thanks
1 User
Old   #5


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
Yeah, he was mostly trying to build the Emu based on the Code he got from the official game server.
That isn't/wasn't the best decision, I'd agree, but I think it was the quickest way of getting the Emu running, and thinking back about how often he was around, I think this was the best way for him.
Also the code was supposed to be open source too, mostly as a base I guess, but as we can see, the project got dropped sadly.

@Smoke Yeah, running C# on Linux via Mono is an idea, but I don't really think that's the best solution. Mono might be good (haven't worked with it, but I've heard lots about it), but I don't think that creating a program which needs to calculate a **** ton as well as handle hundreds of connections in Mono is a good choice.
Well, let's say "better safe than sorry" tho, that's why I decided to hop on the "C++ train".
Oh, and I'd take Linux over Windows as a server every time I can. Simply because Linux as a server is million times better than Windows, that's just my opinion.
Xijezu is offline  
Thanks
1 User
Old   #6
 
elite*gold: 0
Join Date: Jul 2015
Posts: 205
Received Thanks: 220
Everyone likes to use that tired trope of 'Oh c++ can handle blah blah blah blah better' this is just that, conjecture. C# has show in many situations to be just as reliable in calculation intensive and network intensive operations. You simply have to know what you're doing and not throw a million assemblies at a JIT based program. Keep the calls down to base libraries instead of wrappers (unless the wrapper has proven to be faster/more efficient) and hate to disagree with you on your point Gr4ph0s but...without setting off another infernal c++ vs c# debate (the net is littered with them already) but you in many senses are wrong

Let's just put it this way, c# is better at higher end function, the only true advantage that c++ has over c# is pointer management aka raw memory management, but this comes as somewhat of a double edged sword, because where you have that raw and unrestricted access/management of memory you when you code thousands upon thousands of lines of code across 100 classes, you will run into memory leaks and memory over-runs without a dedicated qa team-member (ugh).

While in c# many of these hassles are tidied up by GC (BUT DROW GC IS BLER BLER BLER.) Sure GC can be a pain unless you know how to turn it's knobs...OHHH BABY. I have proven my point by writing a rdb editor that vastly outperforms it's c++ counterpart. Yes, I have beaten glandu's editor speed. (Not a point of pride, just goes to show with good dedication and knowledge c# can contend with and in some cases surpass c++.

TL;DR

Don't let preconceived notions about a code platform shy you away from obvious advantages, also...I see cheaper linux hosting being an advantage but it's not really a deal breaker for me.

Eitherway much luck and I hope to see your emulator make it to the end, this community needs more variation, a c++ emu a c# emu, two different epic emu's a CLIENT emu. If I can ever be of use (unlikely as I don't know C++) just drop me a line, busy constantly but I'm never too far.
SilentWisdom is offline  
Old   #7


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
Quote:
Originally Posted by SilentWisdom View Post
Everyone likes to use that tired trope of 'Oh c++ can handle blah blah blah blah better' this is just that, conjecture. C# has show in many situations to be just as reliable in calculation intensive and network intensive operations. You simply have to know what you're doing and not throw a million assemblies at a JIT based program. Keep the calls down to base libraries instead of wrappers (unless the wrapper has proven to be faster/more efficient) and hate to disagree with you on your point Gr4ph0s but...without setting off another infernal c++ vs c# debate (the net is littered with them already) but you in many senses are wrong

Let's just put it this way, c# is better at higher end function, the only true advantage that c++ has over c# is pointer management aka raw memory management, but this comes as somewhat of a double edged sword, because where you have that raw and unrestricted access/management of memory you when you code thousands upon thousands of lines of code across 100 classes, you will run into memory leaks and memory over-runs without a dedicated qa team-member (ugh).

While in c# many of these hassles are tidied up by GC (BUT DROW GC IS BLER BLER BLER.) Sure GC can be a pain unless you know how to turn it's knobs...OHHH BABY. I have proven my point by writing a rdb editor that vastly outperforms it's c++ counterpart. Yes, I have beaten glandu's editor speed. (Not a point of pride, just goes to show with good dedication and knowledge c# can contend with and in some cases surpass c++.

TL;DR

Don't let preconceived notions about a code platform shy you away from obvious advantages, also...I see cheaper linux hosting being an advantage but it's not really a deal breaker for me.

I don't mind both languages, but after all, as I said earlier, I'd rather do something I know instead of developing everything with Mono C# and then falling on my face because it's not working as intended.

Quote:
Originally Posted by SilentWisdom View Post
[...]a CLIENT emu.
If I just weren't too lazy to read into 3D Development (OpenGL/DirectX)....
You know how many times I was about to do that but dropped that just because I didn't want to bother with the models? Jeez, that's almost insane.
Quote:
Originally Posted by SilentWisdom View Post
If I can ever be of use (unlikely as I don't know C++) just drop me a line, busy constantly but I'm never too far.
You should've received a PM from me a few days ago, but well... :P


Quote:
P.S. That's why we aimed our emu @ 6.2 because there is an available 7.1 sframe pdb and 6.2 game-server pdb. Makes things immensely easier :P
Yeah, that's exactly why I want an unpacked SFrame. Armadillo prevents me from debugging the SFrame and this is just plain dumb.
I'm currently working with the 5.2(?) Herlock and its PDB but some things changed drastically.
I'm happy that I got the inventory working by now, that was a pain in the ass just doing trial-and-error debugging until I got it to work.
Same thing applies to the warp packet - for some reason the SFrame crashes as soon as it receives the warp packet, it doesn't matter what I'm sending - it just crashes. And I literally have no idea why. I gave up on that part and I'm hoping right now that somehow I'll be able to get a copy of an unpacked SFrame to get the structure of that packet.
Xijezu is offline  
Old   #8
 
elite*gold: 0
Join Date: Aug 2012
Posts: 312
Received Thanks: 252
if you get the link for the client (or at least sframe + all dll loaded) upload it, I could give a shot into this for unpacking it

Moreover remove hackshield in this epic is pretty easy as I remember you just need to nop the call of the dll.
gr4ph0s is offline  
Old   #9


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
Quote:
Originally Posted by gr4ph0s View Post
if you get the link for the client (or at least sframe + all dll loaded) upload it, I could give a shot into this for unpacking it

Moreover remove hackshield in this epic is pretty easy as I remember you just need to nop the call of the dll.
I reuploaded it to mediafire a few days ago, but the client I'm using is the one linked in the rappelzdc:
Xijezu is offline  
Old   #10
 
elite*gold: 0
Join Date: Oct 2010
Posts: 296
Received Thanks: 432
Glad to see this is happening! If I were to do it again I'd probably stick with C++ simply because I've worked with it for years before Rappelz existed. I decided to do most of my tools in C# as a learning experience. There were definitely parts that were done in a "C++" way that should have been done differently. My plan for the emu originally was to get it working and then basically redo it once I better understood how things worked internally.

I'll take a look when I'm get home and see if I have anything for Epic 4 but I think the earliest server I have is 5. What I did to help figure out the packets is create a thunk server that just took traffic from the client and server, dumped the packet info to a log, and passed it on to the real destination. It came in real handy when trying to determine what changed between epics, etc. Although that may not help as much in this case since there isn't an Epic 4 server to run it against.
Pyrok is offline  
Thanks
6 Users
Old   #11
 
elite*gold: 0
Join Date: Jul 2015
Posts: 205
Received Thanks: 220
Nice to see you still lurking Pyrok, I have a good base knowledge of c++ (in theory) but I don't have much time to actually put it into practice. I am however still going to code on the 6.2 emu in my spare time. That being said I think it's great to see an active dialogue about emulators (be they c++ or c#) I think if we could get a good documentation going about packet, packet management, good networking practices, communication protocol, encryption and more it would go a long way to maybe putting a spark back in this community.

Anyway, bed time. Gotta work tonight. Blerggg
SilentWisdom is offline  
Old   #12


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
Wow, I'm quite surprised that you're still around, great to see you again!
Quote:
Originally Posted by Pyrok View Post
What I did to help figure out the packets is create a thunk server that just took traffic from the client and server, dumped the packet info to a log, and passed it on to the real destination. It came in real handy when trying to determine what changed between epics, etc. Although that may not help as much in this case since there isn't an Epic 4 server to run it against.
Yeah, I did the same with the Epic 5 server files (that was a "shorter version" of the XChat I released earler, I got some interesting stuff from an IDA dump and the packets itself, but sadly nothing to the warp command as example.
Xijezu is offline  
Old   #13
 
elite*gold: 0
Join Date: Jan 2013
Posts: 94
Received Thanks: 3
coming pserver e4?
Cocahaha is offline  
Old   #14
 
elite*gold: 0
Join Date: Aug 2012
Posts: 312
Received Thanks: 252
If you have any issue tell me


SFrame_unpacked_ => the untouched unpacked
SFrame_unpacked_noHackShield => I remove the loading of the DLL normally it should fix it but since I can't test it on a server I can't be sure.

Btw I also unpacked the EhSvc.dll (hackshied dll) she is lunched with dat in argument 1C7DF61A08F7C881CECEBA22

Btw gangor have developped a client who listen all connection and it print all packet information to a console. He use the auth system from glandu so he his able to log into all auth version (normally ^^), so if you are interested feel free to ask

Funny fact the sframe seem to date to the 19 Jully 2007. 9 Year ago...
gr4ph0s is offline  
Thanks
4 Users
Old   #15


 
elite*gold: 30
Join Date: May 2011
Posts: 4,795
Received Thanks: 3,179
Quote:
Originally Posted by gr4ph0s View Post
If you have any issue tell me


SFrame_unpacked_ => the untouched unpacked
SFrame_unpacked_noHackShield => I remove the loading of the DLL normally it should fix it but since I can't test it on a server I can't be sure.



Btw gangor have developped a client who listen all connection and it print all packet information to a console. He use the auth system from glandu so he his able to log into all auth version (normally ^^), so if you are interested feel free to ask
Oh jesus, you're a god!
How in the hell were you able to do that this fast? I literally threw everything on that stuff I had and I didn't even came close to unpacking it (note: I suck at such things, but still).
Thanks! That'll help a lot!

Quote:
Originally Posted by gr4ph0s View Post
Funny fact the sframe seem to date to the 19 Jully 2007. 9 Year ago...
We're getting old. :/ 2007, it's like it was last week


Xijezu is offline  
Thanks
1 User
Reply



« Previous Thread | Next Thread »



All times are GMT +2. The time now is 13:51.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy
Copyright ©2017 elitepvpers All Rights Reserved.