Friction Posted June 27 Posted June 27 (edited) Hello, Spoiler For a very long time, I’ve been trying to extract the models from an MMORPG that I loved playing during my childhood. I’ve also been developing games as a hobby for many years, and this particular game has always been my main source of inspiration and motivation. I would be truly grateful if you could help me with this. To start, I extracted the objects.dat file using the following QuickBMS script: idstring "SKYF" get VER short set PATH string "" callfunction EXTRACT 1 startfunction EXTRACT getdstring NAME 0x40 get FOLDERS short get FILES short string PATH + NAME string PATH + / for i = 0 < FOLDERS callfunction EXTRACT next i for i = 0 < FILES getdstring NAME 0x80 get OFFSET long get SIZE long string NAME p "%s%s" PATH NAME log NAME OFFSET SIZE next i endfunction After that, I encountered a large number of files with the .ADF extension. These seem to be compressed and possibly encrypted 3D model files. I was able to extract most of them using another QuickBMS script: idstring "root" get chunkCnt long get entrySize long goto 0xC 0 SEEK_CUR savepos Offset set recSize long chunkCnt math recSize * entrySize math recSize + Offset get Name basename string Name + ".dec" log Name 0 recSize log MEMORY_FILE Offset recSize set totalSize long 0 goto 0 MEMORY_FILE for i = 0 < chunkCnt goto 12 MEMORY_FILE SEEK_CUR get Size long MEMORY_FILE goto 16 MEMORY_FILE SEEK_CUR math totalSize + Size next i putvarchr MEMORY_FILE totalSize 0 log MEMORY_FILE 0 0 append for i = 0 < chunkCnt getdstring chunkName 4 get hash long get ZSize long get Size long get isCompressed long get Offset long get UnzippedOffset longlong clog MEMORY_FILE Offset ZSize Size next i log Name 0 totalSize MEMORY_FILE I believe I can now use a program like 3D Model Researcher to convert them into a more common format such as .OBJ, but unfortunately, I don’t have the technical knowledge to do that properly. Despite my efforts, I haven’t been successful. I would greatly appreciate any help you can provide. Spoiler It would mean a lot to me to be able to 3D print these models and keep them as mementos. I’d also love to create scenes using them in modern game engines like Unity, just for fun. This has huge sentimental value for me. Example .ADF and .DEC files: https://www.mediafire.com/file/e6egp12kehih3ry/example_files_arsenal.zip/file Thank you very much for your time. Sincerely, Edited June 27 by Friction Game name and platform added to the title
Engineers shak-otay Posted June 27 Engineers Posted June 27 (edited) Hello, I have a déjà vue that I saw this "dragon" on former xentax years ago (ID_EPIK_EJDER.dec) : Edited June 27 by shak-otay 1
Friction Posted June 27 Author Posted June 27 54 minutes ago, shak-otay said: Hello, I have a déjà vue that I saw this "dragon" on former xentax years ago (ID_EPIK_EJDER.dec😞 Yes, that was probably me too. 🙂 I’ve never given up trying all these years, and the image you just shared looks very close to the original model.
DKDave Posted June 27 Posted June 27 Can you please update your topic title to include the game name / platform. Thanks.
Friction Posted June 27 Author Posted June 27 38 minutes ago, DKDave said: Can you please update your topic title to include the game name / platform. Thanks. Updated. Thanks.
Friction Posted June 28 Author Posted June 28 The original objects.dat file: https://www.mediafire.com/file/u6qs5dt6tngaz5a/objects.zip/file
Engineers shak-otay Posted June 28 Engineers Posted June 28 Btw, whom are the quickbms scripts from? Is there a modding community?
Friction Posted June 28 Author Posted June 28 (edited) 1 hour ago, shak-otay said: Btw, whom are the quickbms scripts from? Is there a modding community? Unfortunately, no. The scripts are from the old zenhax and xentax forums. In fact, the .ADF decompressor script was created directly by Luigi. And for those who decide to deal with this in the future, here is the quickBMS script for exporting the textures_X.DAT files: idstring "SKYF" goto 0x48 get files short for i = 0 < files getdstring NAME 0x80 get offset long get size long log name offset size next i Edited June 28 by Friction Texture script added.
AexaDev Posted June 28 Posted June 28 Hey! I worked with this format I have a blender addon to import models into blender
AexaDev Posted June 28 Posted June 28 Addon curtesy of REDxEYE __init__.py to be used with https://github.com/REDxEYE/UniLoader and with it there is my audio .raw file converter all the extracted resources can be found here ill link my extractor aswell if i can find it https://drive.google.com/file/d/10uo-DmmpNkiYlogR9eWmIyy74_AfaM05/view Program.zip 1
Friction Posted June 29 Author Posted June 29 9 hours ago, AexaDev said: Addon curtesy of REDxEYE __init__.py to be used with https://github.com/REDxEYE/UniLoader and with it there is my audio .raw file converter all the extracted resources can be found here ill link my extractor aswell if i can find it https://drive.google.com/file/d/10uo-DmmpNkiYlogR9eWmIyy74_AfaM05/view Program.zip 1.03 kB · 0 downloads Hello, Thank you for this priceless information. I'll definitely try it tomorrow. It's an exciting development.
Engineers shak-otay Posted June 29 Engineers Posted June 29 I get "Keyerror: 'addons'" when trying to activate UniLoader.
AexaDev Posted June 29 Posted June 29 10 minutes ago, shak-otay said: I get "Keyerror: 'addons'" when trying to activate UniLoader. hi use this version of uniloader UniLoader.zip 1
Engineers shak-otay Posted June 29 Engineers Posted June 29 (edited) Hi, and thanks! Install from zip: 'No module named UniLoader'. Blender v3.5, btw. Edited June 29 by shak-otay
AexaDev Posted June 30 Posted June 30 (edited) 12 hours ago, shak-otay said: Hi, and thanks! Install from zip: 'No module named UniLoader'. Blender v3.5, btw. UniLoader.zip it was just a matter of unzipping the file renaming the folder within to "UniLoader" and zipping it. Now to install the addon you must compress that .py file in order to be installed Edited June 30 by AexaDev mistake 1
Solution AexaDev Posted June 30 Solution Posted June 30 13 minutes ago, AexaDev said: UniLoader.zip it was just a matter of unzipping the file renaming the folder within to "UniLoader" and zipping it. Now to install the addon you must compress that .py file in order to be installed
Friction Posted June 30 Author Posted June 30 @AexaDev you are a hero. I don't even know how I can thank you. This is one of the best things that's ever happened to me. Thank you so much. Btw, just out of curiosity, are you an IKV player?
AexaDev Posted June 30 Posted June 30 (edited) 1 hour ago, Friction said: @AexaDev you are a hero. I don't even know how I can thank you. This is one of the best things that's ever happened to me. Thank you so much. Btw, just out of curiosity, are you an IKV player? Never played the game, there was one guy on a discord server that asked for help for this specific game and i decided to help him out Id like to once again credit REDxEYE for his blender addon Edited June 30 by AexaDev 1
Friction Posted June 30 Author Posted June 30 4 minutes ago, AexaDev said: Never played the game, there was one guy on a discord server that asked for help for this specific game and i decided to help him out Id like to once again credit REDxEYE for his blender addon That was quite helpful. Thank you so much. I will try to make a version that can also get the UV map. If I succeed, I will definitely share it here.
AexaDev Posted June 30 Posted June 30 8 minutes ago, Friction said: That was quite helpful. Thank you so much. I will try to make a version that can also get the UV map. If I succeed, I will definitely share it here. Uvs are there just have to bind the right texture! 1
Engineers shak-otay Posted June 30 Engineers Posted June 30 2 hours ago, AexaDev said: Now to install the addon you must compress that .py file in order to be installed The ADF plugin didn't install. I had to modify it like so (see picture) and start it manually from the scripting window. Great work, though. Thanks.
Friction Posted June 30 Author Posted June 30 36 minutes ago, AexaDev said: Uvs are there just have to bind the right texture! I am sorry, it's my bad. I think my quickBMS script is not working properly, because when I tried it with the file you uploaded, everything worked fine. Can you please share the script you use to extract .dat files? 22 minutes ago, shak-otay said: The ADF plugin didn't install. I had to modify it like so (see picture) and start it manually from the scripting window. Great work, though. Thanks. You need to install UniLoader first. Then you need to install the .py file as UniLoader plugin.
Engineers shak-otay Posted June 30 Engineers Posted June 30 (edited) 6 minutes ago, Friction said: You need to install UniLoader first. You should know that what I showed wouldn't work without UniLoader installed, shouldn't you? Quote Then you need to install the .py file as UniLoader plugin. How do I install as UniLoader plugin? That's the problem. Install from GitHub? (Best way, probably.) But it should be possible to install the ADF py from disk, shouldn't it? But anyways, dont' bother. I've wasted too much time with this already. I have a working workaround for me. That is what counts. Edited June 30 by shak-otay
AexaDev Posted June 30 Posted June 30 19 minutes ago, Friction said: I am sorry, it's my bad. I think my quickBMS script is not working properly, because when I tried it with the file you uploaded, everything worked fine. Can you please share the script you use to extract .dat files? You need to install UniLoader first. Then you need to install the .py file as UniLoader plugin. Hi I need to find my extractor I have written it a while ago, meanwhile you can just use the resources in the google drive link I gave earlier 1
AexaDev Posted June 30 Posted June 30 (edited) 31 minutes ago, shak-otay said: You should know that what I showed wouldn't work without UniLoader installed, shouldn't you? How do I install as UniLoader plugin? That's the problem. Install from GitHub? (Best way, probably.) But it should be possible to install the ADF py from disk, shouldn't it? But anyways, dont' bother. I've wasted too much time with this already. I have a working workaround for me. That is what counts. on this, you cannot use this script with the latest release of uniloader from github, the API has changed since the IKV script has been written, only version works with it is 0.1.0, which is the one i have provided here and the one OP has shown in his screenshot In addition both the loader and the script have been designed for Blender 4.0+ so there might be issues if you use older versions Edited June 30 by AexaDev 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now