That's what maststef did in WzExtract too. I don't like this approach because it is not efficient and very unrobust (what if a string accidentally decodes as valid ASCII characters, but they don't make any sense because it's the wrong encryption? The chance is close to zero, but it still feels unreliable). Also, this approach makes repacking impossible because you don't know which encryption to use when saving new\modified data.
Didn't expect to be hearing from you anytime soon. Good to see that you're back, even if your 'stay' might not be quite long.
Just wanted to say thank you for 'kick-starting' the WZ Editing section of the 'MapleStory Private Server Development Community' since none of my work, nor any of the other WZ Editor's work could be done without your software and hard work.
Ok, heres some details:
I was trying to dump GMS v0.2X client .wz files.
I successfully dumped all the XML files, then I wanted to dump the PNG/MP3s. The exact settings I used were "GMS (old)" encryption and then just using the Tools > Export file(s) to > PNG\MP3 button, and selecting all the wz files (except list.wz and base.wz obviously). It successfully without any complaints extracted Character.wz, Effect.wz, Etc.wz, Item.wz, but when it gets to Map.wz when it's about 90% done it crashes. I've retried it many times, it consistently happens on Map.wz, I've tried using options other than exporting files (like exporting selection). I think it also happens on other files if I skip Map.wz, like Mob.wz. I'm not sure what other details I can post than this.
I don't understand why the bug occurs, but it seems to happen when it reaches a specific file, wouldn't it be possible to add a simple try catch statement when exporting files, and if it has an error then just skip that specific file and continue with the rest of the .wz file. Well, that's just my idea. I don't even know why it happens.
Any one could give me another download link?
My isp ban "mediafire".
Hey Haha01haha01, I found a bug in the export code when using the PNG option: it exports the folder twice:
Character.wz/Longcoat/Longcoat/01050023.img/01050023.img/{actual images here}
:)
Good to see you again haha01. I always liked your work. :)
I found a little bug quite some time ago, really long ago actually. Not something too serious, but might be useful:
When you play a sound file from Sound.wz, if you use your mouse middle-button to scroll, the playing position will shift as well. If you scroll to a poisition before the beginning or after the end, it will crash HaReapcker.
Best of luck with whatever you do. :)
Gonna release a new version soon, with lots of new feature !
Thanks for this, ' haha ' - although, I already had your source...
Just a quick update, I've been away since my last post here and I'm going to be absent for long periods of time from now on due to some personal issues. I've read the bug reports but I don't have the time to fix them.
Regarding FightDesign's post: forks are always welcomed, but you need to comply with the terms of the GPL license (the primary part is that source code must always be available)
For anyone having issues with wz files created by koolk's map editor but doesn't want to hassle with koolk-breaker, here is a quick patch that will fix everything magically.
Code:From 50e753cb4bfac4a0912d7c15e5ecab461a429680 Mon Sep 17 00:00:00 2001 From: retep998 <retep998@verizon.net> Date: Wed, 1 May 2013 00:27:08 -0400 Subject: [PATCH] Fixed issue with koolk files Signed-off-by: retep998 <retep998@verizon.net> --- WzLib/WzFile.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WzLib/WzFile.cs b/WzLib/WzFile.cs index 2b3622f..df5c925 100644 --- a/WzLib/WzFile.cs +++ b/WzLib/WzFile.cs @@ -177,14 +177,15 @@ namespace MapleLib.WzLib Helpers.ErrorLogger.Log(Helpers.ErrorLevel.Critical, "[Error] Path is null"); return; } - WzBinaryReader reader = new WzBinaryReader(File.Open(this.path, FileMode.Open), WzIv); + FileStream file = File.Open(this.path, FileMode.Open); + WzBinaryReader reader = new WzBinaryReader(file, WzIv); this.Header = new WzHeader(); this.Header.Ident = reader.ReadString(4); this.Header.FSize = reader.ReadUInt64(); this.Header.FStart = reader.ReadUInt32(); this.Header.Copyright = reader.ReadNullTerminatedString(); + file.Seek(this.Header.FStart, SeekOrigin.Begin); reader.ReadBytes((int)(Header.FStart - reader.BaseStream.Position)); reader.Header = this.Header; this.version = reader.ReadInt16(); -- 1.8.0.msysgit.0
Hi,
I'm considerably new to modding Maplestory, but I think that HaRepacker might be having some difficulties rebuilding IMGs containing voices (SkillVoice).
I was trying to port the Japanese Angelic Buster voices over from JMS to SEA. Unfortunately, changing any one voice with HaRepacker (even if the voice was merely extracted and re-inserted) just caused all voices in that image to be played at a really high sample rate.
Please feel to correct me if I am wrong here though! Maybe there's already a known explanation for that, but I just haven't found it.
As for what I did on my end to get voice replacement working, I got the halfword/short at 0x36 set to 0x01 instead of 0x02 and the 32-bit word at 0x3C set to 0x0bb8 instead of 0x2710.
Here are all the differences in the structures that I've noticed when comparing the headers of the SkillVoice files against the reference soundHeaderMask structure:
Note: header refers to the header that precedes the MP3 file itself, which is the same for all voices under SkillVoice.Code:Differences (header vs soundHeaderMask): 0x36 (short) - 0x01 0x02 (01 = voice, 02 = BGM, seems to be a sound channel selector). 0x38 (word) - (Sample rate) 0x3C (word) - 0x0bb8 0x2710 (Seems to be some round number like 1000, 3000 or 6000. Sample buffer length?) 0x4C - 0x4E 0x00 0x4D - 0x00 0x0A 0x4E - 0x01 0x02 0x4F - 0x00 0x01 0x50 - 0x71 0x00 0x51 - 0x05 0x00
Halfword/short 0x36 seems to be a channel selector. Perhaps 0x02 causes it to be played under the BGM channel, causing it to be played back with the parameters of the BGM (Which presumably has a higher sample rate).
I'm not sure about the word at 0x3C. While just changing byte 0x36 to 0x01 allows voices to be played at their right sample rates... I noticed that the voices were cut off. Setting it to 0xBB0 solved that, although I'm not sure what that actually does.
On a side note, it seems like not all sounds are MP3 files. It appears that normal skill sounds are headerless wave files and the headers that precede these files are no different from their SkillVoice counterparts... on at least SEA.
I don't know about how well this works on other Maplestory versions like JMS, although I could possibly test on JMS if required. (JMS seems to have more variations in its voice MP3 header fields too, BTW)
Thank you for reading!
Last edited by sp193; 05-06-13 at 06:20 AM.
Thanks for giving more technical information then I could have ever given. I also reported the same thing over in this thread: http://forum.ragezone.com/f701/encou...voices-935343/
Just wondering if the type of mp3 file makes a difference? Since i mentioned in my thread
or it doesn't matter?
Wow. Finally, someone else across the Internet who has run into this issue as well. Thank you!
No, it doesn't. I tried re-encoding the AB's voices with Audacity with the exact same parameters used for the SEA voices, and there was no effect. After encoding, the resulting audio file is a MP3 version 2 file as well.
Besides, I wrote in my post above that this problem happens even with the original files you extract from SEA (Extracting and reinserting any one voice will screw all of them up, even if you don't touch the others).
Since both JMS and MapleSEA are MapleStory games, the engines should be similar enough, so I don't see why they would take the effort to bother changing the supported audio formats anyway.
If one was to take the JMS Sounds.wz pack and modify it for use with the SEA client (By swapping the file version numbers), the sounds all play properly in the SEA client (With the exception of missing sounds). This proves that the MP3 file format version doesn't matter, Wz repacking probably isn't a problem... but IMG file repacking has some issue.
On a side note, I'm also curious to know whether there's a way to re-add the missing FAIL sign that appears when your soul battery runs out, and the sounds that play whenever you can't use a skill and when your soul battery recharges. :/
Last edited by sp193; 07-06-13 at 03:28 PM.