XeNTaX Forum Index
Forum MultiEx Commander Tools Tools Home
It is currently Fri Dec 14, 2018 8:22 pm

All times are UTC + 1 hour


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 30 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: Re: Maplestory 2
PostPosted: Sun May 27, 2018 3:33 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times

Nif models are able to be opened and exportedin Noesis.
Image
Image

Image
Image

Image

You can make the ads go away by registering


_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Wed May 30, 2018 7:17 pm 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
Put all my code up on github.

Includes an expander and a flattener and works for all four file PackStream versions, including the elusive OS2F/PS2F.

https://github.com/Wunkolo/Maple2Tools

For reader's sake here's all the mapped out structures:

Code:
struct PackStreamVer1 // MS2F
{
public:
   std::uint32_t Pad;                    // Always zero

   std::uint64_t FATCompressedSize;      // DEFLATE length
   std::uint64_t FATEncodedSize;         // Base64 length

   std::uint64_t FileListSize;           // Uncompressed size
   std::uint64_t FileListCompressedSize; // DEFLATE length
   std::uint64_t FileListEncodedSize;    // Base64 length

   std::uint64_t TotalFiles;             // Total Files
   std::uint64_t FATSize;                // Uncompressed size
};
static_assert(
   sizeof(PackStreamVer1) == 0x3C,
   "sizeof(PackStreamVer1) != 0x3C"
);

struct PackStreamVer2 // NS2F
{
public:
   std::uint32_t TotalFiles;             // Total Files

   std::uint64_t FATCompressedSize;      // DEFLATE length
   std::uint64_t FATEncodedSize;         // Base64 length
   std::uint64_t FATSize;                // Uncompressed size

   std::uint64_t FileListCompressedSize; // DEFLATE length
   std::uint64_t FileListEncodedSize;    // Base64 length
   std::uint64_t FileListSize;           // Uncompressed size
};
static_assert(
   sizeof(PackStreamVer2) == 0x34,
   "sizeof(PackStreamVer2) != 0x34"
);

struct PackStreamVer3 // OS2F/PS2F
{
   std::uint32_t TotalFiles;             // Total Files
   std::uint32_t Pad;                    // Always Zero

   std::uint64_t FATCompressedSize;      // DEFLATE length
   std::uint64_t FATEncodedSize;         // Base64 length

   std::uint64_t FileListCompressedSize; // DEFLATE length
   std::uint64_t FileListEncodedSize;    // Base64 length
   std::uint64_t FileListSize;           // Uncompressed size

   std::uint64_t FATSize;                // Uncompressed size
};
static_assert(
   sizeof(PackStreamVer3) == 0x38,
   "sizeof(PackStreamVer3) != 0x38"
);

// Haven't verified these myself.
enum class CompressionType : std::uint32_t
{
   Deflate = 0xEE000009,
   Png     = 0xEE000000,
   Usm     = 0xFF000000
};

struct PackFileHeaderVer1 // MS2f
{
public:
   std::uint32_t Pad1;
   std::uint32_t FileIndex;
   CompressionType Compression;
   std::uint32_t Pad2;
   std::uint64_t Offset;
   std::uint64_t EncodedSize;
   std::uint64_t CompressedSize;
   std::uint64_t Size;
};
static_assert(
   sizeof(PackFileHeaderVer1) == 0x30,
   "sizeof(PackFileHeaderVer1) != 0x30"
);

struct PackFileHeaderVer2 // NS2F
{
public:
   CompressionType Compression;
   std::uint32_t FileIndex;
   std::uint32_t EncodedSize;
   std::uint64_t CompressedSize;
   std::uint64_t Size;
   std::uint64_t Offset;
};
static_assert(
   sizeof(PackFileHeaderVer2) == 0x24,
   "sizeof(PackFileHeaderVer2) != 0x24"
);

struct PackFileHeaderVer3 // OS2F/PS2F
{
public:
   CompressionType Compression;
   std::uint32_t FileIndex;
   std::uint32_t EncodedSize;
   std::uint32_t Pad;
   std::uint64_t CompressedSize;
   std::uint64_t Size;
   std::uint64_t Offset;
};
static_assert(
   sizeof(PackFileHeaderVer3) == 0x28,
   "sizeof(PackFileHeaderVer3) != 0x28"
);

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Wed Oct 10, 2018 7:47 pm 
Offline
ultra-n00b

Joined: Wed Oct 10, 2018 7:43 pm
Posts: 2
Has thanked: 0 time
Have thanks: 0 time
The game has released today, October 10th. I would love to see more research. Looking to build a companion app.


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Thu Oct 11, 2018 3:38 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
Can confirm that my dumper still works with public release of the game.

Though there are these"m2u" files though that are used for user-generated content. I'll poke around the .exe for some info.

https://ugc.maplestory2.nexon.net/item/ ... 105471.m2u

_________________
Aka Wunkolo


Last edited by DEElekgolo on Thu Oct 11, 2018 8:45 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Thu Oct 11, 2018 4:13 am 
Offline
ultra-n00b

Joined: Wed Oct 10, 2018 7:43 pm
Posts: 2
Has thanked: 0 time
Have thanks: 0 time
Image

Possible constants from decompiling the luapack.o?


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Thu Oct 11, 2018 8:50 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
DEElekgolo wrote:
Can confirm that my dumper still works with public release of the game.

Though there are these"m2u" files though that are used for user-generated content. I'll poke around the .exe for some info.

https://ugc.maplestory2.nexon.net/item/ ... 105471.m2u


Turns out to just be a simple zlib compression on a DDS texture.
Image
Image

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Fri Oct 12, 2018 7:54 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
Here's a bunch of UGC meshes that should make skinning and such a lot easier
https://www.mediafire.com/file/d40pdpb9 ... .11.18.zip

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Sun Oct 14, 2018 10:33 pm 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
DEElekgolo wrote:
DEElekgolo wrote:
Can confirm that my dumper still works with public release of the game.

Though there are these"m2u" files though that are used for user-generated content. I'll poke around the .exe for some info.

https://ugc.maplestory2.nexon.net/item/ ... 105471.m2u


Turns out to just be a simple zlib compression on a DDS texture.
Image
Image


Turns out this vulnerability on Nexon's part is the cause of a lot of the UGC theft that has been going on lately. Where people are very easily able to just sniff an m2u url and decompress it to steal each other's textures.
Hope Nexon cleans this up at some point in the future. I won't be focusing on UGC stuff.

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Tue Oct 23, 2018 4:45 am 
Offline
mega-veteran
mega-veteran

Joined: Mon Oct 06, 2008 2:52 am
Posts: 192
Has thanked: 17 times
Have thanks: 2 times
This is pretty awesome except for the fact there's no compiled Windows build and I can't for the life of me figure out how to compile it myself...


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Fri Oct 26, 2018 7:20 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
Doctor Loboto wrote:
This is pretty awesome except for the fact there's no compiled Windows build and I can't for the life of me figure out how to compile it myself...


Just added a precompiled windows build:
https://github.com/Wunkolo/Maple2Tools/ ... s/tag/v1.0

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Wed Nov 28, 2018 8:13 am 
Offline
ultra-n00b

Joined: Wed Nov 28, 2018 8:00 am
Posts: 3
Has thanked: 0 time
Have thanks: 0 time
Thank you for your amazing tool! May I ask what tool/software do you use to show the animation? I was trying to export the nif files to obj files for blender, but the texture information was completely lost (I think) let alone skeleton/bones.

Thanks again


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Wed Nov 28, 2018 8:56 am 
Offline
beginner
User avatar

Joined: Thu Dec 23, 2010 9:49 am
Posts: 35
Has thanked: 6 times
Have thanks: 18 times
Noesis!
I exported an FBX from it which maintains the rigging and bones

_________________
Aka Wunkolo


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Wed Nov 28, 2018 5:09 pm 
Offline
ultra-n00b

Joined: Wed Nov 28, 2018 8:00 am
Posts: 3
Has thanked: 0 time
Have thanks: 0 time
DEElekgolo wrote:
Noesis!
I exported an FBX from it which maintains the rigging and bones


thank you so much! when I try to import fbx to blender 2.79, it said blender only support fbx version more than 7000 while the fbx version I import is 6100. Shall I just abandon this blender?


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Thu Nov 29, 2018 5:35 pm 
Offline
ultra-n00b

Joined: Wed Nov 28, 2018 8:00 am
Posts: 3
Has thanked: 0 time
Have thanks: 0 time
jjlovemaple wrote:
DEElekgolo wrote:
Noesis!
I exported an FBX from it which maintains the rigging and bones


thank you so much! when I try to import fbx to blender 2.79, it said blender only support fbx version more than 7000 while the fbx version I import is 6100. Shall I just abandon this blender?


I think I find a solution, all you need is autodesk fbxconverter to convert the 6100 version fbx files, then blender can read the bones, but still lost texture info for some reasons.


Top
 Profile  
 
 Post subject: Re: Maplestory 2
PostPosted: Sun Dec 02, 2018 2:55 am 
Offline
ultra-n00b

Joined: Sat Dec 01, 2018 5:05 pm
Posts: 1
Has thanked: 1 time
Have thanks: 0 time
Hiya, I just wanted to say thanks a lot for making this tool! I've got a question about some of the animations; I've been using Noesis to preview a few things and I've noticed that some animations will either play like they do in game, or just slightly wiggle around while t-posed. Is there something else I need to do to get them to animate properly or another program besides Noesis I should be using?



Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 30 posts ]  Go to page Previous  1, 2

All times are UTC + 1 hour


Who is online

Users browsing this forum: michalss and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group