Register for your free account! | Forgot your password?

Go Back   elitepvpers > Silkroad Online > SRO PServer - Discussions / Questions > SRO PServer Guides & Releases
You last visited: Today at 02:41

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


Custom GFXFileManager - Create your own PK2-Format

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2008
Posts: 471
Received Thanks: 592
GFXFileManager Source - Create your own PK2-Format

Hello beloved, dead community,

i think its time for some fresh sources. I've reverse engineered the GFXFileManager. For the ones among us who don't know what this is: This thing handles all PK2-Container related stuff, meaning it is used to read and write files in and to the PK2-Container. The launcher and the server also use it to access files on the disk.

Yes. Drew has done it before. But his codebase was super ugly. (Sorry Drew <3).

For now, its doing what I am using it for: Easy development
All files are loaded from the disk, resulting in your SRO_Folder looking like this!

(Note: The Media.pk2 is still existing in a minified version because edxLoader requires it.)


So, having its interface reverse engineered, you now can:
  • Create your fully customized container format
  • Make a universal PK2 Editor that does not has to deal with the container-structure
  • Replace the container with plain disk access (for easier development)
  • Create wrappers for different file-types or names and replace entire file-formats (like introducing a compressed image format, maybe?)
  • ...


Hints and Warnings:
  • It is developed based on the GFXFileManager in VSRO 1.188. Other versions and locales can work, but its likely they won't. Nonetheless, having the source you can easily make it work for other versions.
  • Feel free to report bugs on GitLab (please check if your bug has been reported already, and please put a meaningful description of your problem.)
  • Feel free to request stuff
  • I've never seen a good, community driven, silkroad project and I doubt it will ever exist. Anyway, feel free to contribute code on GitLab.
  • Please keep in mind: VSRO was compiled on Visual Studio 2005 (Platformtoolset 80). Microsoft does not care about ABI-compatibility between toolsets. While GFXFileManager seems entirely separated from the Main codebase, any newer toolset than 80 might break the DLL. Visual Studio 2010/Toolset 100 seems to work fine till now.
  • Compiling on "Debug" will break the ABI, no matter what version you are using! Always compile on "Release"!
  • I've even implemented some of the bugs the original file manager had


Complete Source:

License: . No warranties whatsoever!

Download: This is a library. There is no use in a compiled version. Download the source on GitLab.


Have fun.



florian0 is offline  
Thanks
30 Users
Old 03/04/2017, 13:18   #2
 
elite*gold: 56
Join Date: Jul 2013
Posts: 428
Received Thanks: 102
thank you dud


XerK.. is offline  
Old 03/04/2017, 13:57   #3
 
elite*gold: 0
Join Date: Jul 2012
Posts: 170
Received Thanks: 27
thanks!
esteve458 is online now  
Old 04/12/2017, 19:08   #4
 
elite*gold: 0
Join Date: Nov 2015
Posts: 54
Received Thanks: 1
How does it work ? any guides ?


devil770 is offline  
Old 04/14/2017, 04:45   #5
 
elite*gold: 0
Join Date: May 2010
Posts: 559
Received Thanks: 154
Quote:
Originally Posted by florian0 View Post
Hello beloved, dead community,

i think its time for some fresh sources. I've reverse engineered the GFXFileManager. For the ones among us who don't know what this is: This thing handles all PK2-Container related stuff, meaning it is used to read and write files in and to the PK2-Container. The launcher and the server also use it to access files on the disk.

Yes. Drew has done it before. But his codebase was super ugly. (Sorry Drew <3).

For now, its doing what I am using it for: Easy development
All files are loaded from the disk, resulting in your SRO_Folder looking like this!

(Note: The Media.pk2 is still existing in a minified version because edxLoader requires it.)


So, having its interface reverse engineered, you now can:
  • Create your fully customized container format
  • Make a universal PK2 Editor that does not has to deal with the container-structure
  • Replace the container with plain disk access (for easier development)
  • Create wrappers for different file-types or names and replace entire file-formats (like introducing a compressed image format, maybe?)
  • ...


Hints and Warnings:
  • It is developed based on the GFXFileManager in VSRO 1.188. Other versions and locales can work, but its likely they won't. Nonetheless, having the source you can easily make it work for other versions.
  • Feel free to report bugs on Github (please check if your bug has been reported already, and please put a meaningful description of your problem.)
  • Feel free to request stuff
  • I've never seen a good, community driven, silkroad project and I doubt it will ever exist. Anyway, feel free to contribute code on Github.
  • Please keep in mind: VSRO was compiled on Visual Studio 2005 (Platformtoolset 80). Microsoft does not care about ABI-compatibility between toolsets. While GFXFileManager seems entirely separated from the Main codebase, any newer toolset than 80 might break the DLL. Visual Studio 2010/Toolset 100 seems to work fine till now.
  • Compiling on "Debug" will break the ABI, no matter what version you are using! Always compile on "Release"!
  • I've even implemented some of the bugs the original file manager had


Complete Source:

License: . No warranties whatsoever!

Download: This is a library. There is no use in a compiled version. Download the source on Github.


Have fun.
what about blowfish
xxnukertube is offline  
Old 04/14/2017, 11:28   #6
 
elite*gold: 0
Join Date: Apr 2008
Posts: 471
Received Thanks: 592
Quote:
Originally Posted by xxnukertube View Post
what about blowfish
It's not planned to implement the original filemanager any time soon. There is no gain in recreating a class for the blowfish-encrypted-pk2.
This lib is meant for implementing custom formats in the first place.
If you want to create a wrapper around the original file manager, you can simply use the interface and instanciate the original file manager inside your wrapper.
florian0 is offline  
Old 04/14/2017, 13:42   #7
 
elite*gold: 0
Join Date: Apr 2017
Posts: 3
Received Thanks: 0
thank dude
Dev.Bedo is offline  
Old 05/23/2017, 03:02   #8
CheeseBurger !!


 
elite*gold: 1751
Join Date: Oct 2012
Posts: 8,001
Received Thanks: 3,064
#Sticked
Spidy. is offline  
Thanks
3 Users
Old 05/23/2017, 13:37   #9
 
elite*gold: 1
Join Date: Nov 2011
Posts: 2,524
Received Thanks: 1,343
Quote:
Originally Posted by Spidy. View Post
#Sticked
Wondering why this guide got sticked
Snow* is offline  
Old 05/23/2017, 13:51   #10


 
elite*gold: 28
Join Date: Aug 2014
Posts: 4,095
Received Thanks: 2,630
Quote:
Originally Posted by Snow* View Post
Wondering why this guide got sticked
Because it's a good release. One of the best releases in years. He put efforts in something that is not average.
​Exo is offline  
Thanks
1 User
Old 05/23/2017, 14:18   #11
 
elite*gold: 1
Join Date: Nov 2011
Posts: 2,524
Received Thanks: 1,343
Quote:
Originally Posted by ​Exo View Post
Because it's a good release. One of the best releases in years. He put efforts in something that is not average.
I do appreciate his efforts, but it's not a good reason to stick the thread.
Snow* is offline  
Old 05/23/2017, 14:20   #12


 
elite*gold: 28
Join Date: Aug 2014
Posts: 4,095
Received Thanks: 2,630
Quote:
Originally Posted by Snow* View Post
I do appreciate his efforts, but it's not a good reason to stick the thread.
I'd say: This release (good ones) that get buried in the section just because of the lack of skill from the community deserve more light so perhaps more people would be encouraged to contribute. This is development.
​Exo is offline  
Old 05/23/2017, 16:36   #13
 
elite*gold: 0
Join Date: Jul 2011
Posts: 49
Received Thanks: 29
Quote:
Originally Posted by Spidy. View Post
#Sticked
Maybe making a sticked thread that contains all the good ones threads related to development would be better for showing appreciation for everyone's efforts,
and not leading sticky section to get crowded,
also easier for users to find everything in one place.


Kai· is offline  
Reply

Tags
api, c++, gfxfilemanager, pk2



« [Release] New Website design. | Vip Skills »

Similar Threads
[HELP] How do i create a custom interface?
09/04/2015 - EO PServer Hosting - 7 Replies
Hey guys , Im just wondering if you could tell me or link me a guide of how to create a custom interface for eudemons online because i have no idea and i think that you all could help me i've saw it before on a few other servers. Thankyou from...
Lol Create Custom Game Lobby Ger/Eng
02/04/2014 - League of Legends Main - Discussions / Questions - 1 Replies
You can also reply in German if you wish. I am looking for a way to create a custom game lobby and invite certain summoners into it. Is there a way to do this without key send (autoit)? Preferably java. Is there an exsiting api that can do...
How do I create a custom server.dat?
12/07/2012 - CO2 PServer - Discussions / Questions - 2 Replies
Now I know I will probably be flamed, but I have searched through google and through the forums a plethora of times and have not found a straight answer for what I'm looking for. Ok. So, I've been working on setting up a 5670 server and I used the...
How to create Custom Quests?
05/27/2012 - Dekaron Private Server - 3 Replies
Just as the title says im looking into making some custom quests with custom rewards to add something different for the players. What i wanna know is if it is exe hard coded or just csv and scripting. I have looked into the files but did not...
create a website Custom
03/17/2011 - Shaiya PServer Development - 11 Replies
Hello, demo : http://img84.imageshack.us/img84/6397/testnp.pnghttp://img695.imageshack.us/img695/84/test2jh.png Good luck.



All times are GMT +2. The time now is 02:41.


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

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