Page 9 of 10 FirstFirst ... 78910 LastLast
Results 161 to 180 of 191
  1. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Program: NXPatcher Lite
    Version: 2.1
    Language: C++
    Download: http://static.southperry.net/NXPatch.../NXPatcher.exe
    Changelog: Link
    Audience: Absolute noobies that want a simple, easy, and fast way to make pre-patchers.

    Usage:
    - From the command line: "NXPatcher.exe <filename>"
    - Drag and drop any patch file onto NXPatcher.exe
    - Execute NXPatcher.exe and it will show you a dialog window so you can select the patch file you want.

    Note: This is beta software. Please test it!

  2. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Just in case anyone else (guests) were getting "This program can't start because MSVCP110.dll is missing from your computer," from this most recent (beta) version. Try installing the MS Visual C++ Redistributable (2012), this is especially applicable on machines that can be deemed as old potatoes which might only be used as mule computers. Otherwise, no problems on computers I didn't fish out of the basement. Thanks for the great work.

  3. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Hi Fiel

    do you know of anything about the wz file being encoded ? recently in GMS

  4. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    WARNING: It is no longer recommended to use Orbit Downloader. Recent versions of this program have been performing SYN Flooding against Vietnamese IP addresses. For that reason I have removed the Orbit Downloader recommendation. Please consider using some other file download manager.

  5. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Hello, I am a Maple Story user in South Korea. I ran into a trouble while I was analyzing this NXPatcher with great interest. I'm sending this message because I wanted to know about checking Maple Story's latest version, and how I can check minor patch files when it is minor patch.

  6. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    For minor patches:

    The program connects to the patch directory, but instead of downloading the patch file it downloads Version.info. Version.info contains all of the versions which that directory has the patch for, a CRC of the Maplestory patcher, and a CRC of the Maplestory.exe file. It then runs a CRC check on Maplestory.exe. If the CRC is different, then it downloads the new EXE from the patch FTP. It downloads ExePatch.dat which gets renamed as Maplestory.exe on your computer. This is how minor patches work.

    The CRC used is the same CRC that's used for the patch files. The source code for how to compute this CRC is in the source code provided in the NXPatcher Advanced spoiler.

    As far as how to figure out where the next patch will be, that information on how to find it is located in the NXPatcher Lite and NXPatcher Advanced spoilers. You can use Patchwatcher.net if you'd rather not figure it out yourself.

    Here is an example of what the patch directory looks like:

    ftp://tw.patch.maplestory.gamania.co...atchdir/00160/

    Of course, that's for the Taiwanese version.

    If there is a new version of maplestory and we need to figure out where the patch file is being downloaded from, then it's so easy to load up the program in a debugger (WinDBG, IDA Pro) and get the HTTP/FTP address.

  7. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Or sniff where it tries to go, to be less invasive.

  8. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    So I've been trying to use this multiple times but I always get the same error.
    I heard of people still using this so I'm pretty sure it's a problem on my side.
    It gives me the error 'Out of memory!' every time I try. I've done what the FAQ tells me to do and I have plenty of RAM left over (I have 8GB and about 3 GB was used pre-NXPatcher.
    Spoiler

    Since Fiel isn't the extractor anymore he's not as active anymore (for which he deserves absolutely no blame, of course), but maybe someone else can point out the big obvious error that I'm making that I haven't spotted yet.

  9. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    NXPatcher uses malloc to allocate memory which has a limit that depends on the operating system. Chances are Windows doesn't allow you to malloc such huge amounts of memory from the free store and just errors out. 1.056 GB is a lot of memory to allocate so malloc will probably always fail. This is because the algorithm that Fiel uses to allocate memory naively just multiplies the memory of the patch by two (which is good for 99% of the use cases) so if a patch is 250 MB it'll try to allocate 500 MB and this can become troublesome with big patches as you see there.

    It's probably best to just use patch the usual way when this occurs.

  10. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Being a 32 bit app it also may not be able to find that much contiguous memory available to it.
    A 64 bit app on a 64 bit OS has more flexibility there, but a 32 bit app on a 64 bit OS may not be able to get around certain quirks of memory management.

  11. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    I updated the post with information about the patch file format if anyone else is curious as to how it works.

  12. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    NXPatcher Lite has been updated to version 2.1.

    The main post has been updated to reflect this change.

    If you have already downloaded NXPatcher Lite from the link provided in post #161, then there is no reason to download it again as no further updates have been made.

    You can see a changelog for how NXPatcher Lite is far improved here: Link.

    Good luck, and have fun patching.

  13. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Hey @Fiel

    any news about the Advanced NXPatcher by using CMD =\ It was way faster but the Out of Memory error seems never have been looked at

  14. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    @Fiel NXPatcher Lite doesn't seem to be downloading for me. On Orbit, it just says connecting.

  15. Orbital Bee Cannon
    IGN: SaptaZapta
    Server: Kradia
    Level: 275
    Job: Hero
    Guild: Matriarchy
    Alliance: Peaceful

    Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    I can't run it. Getting an error message "NXPatcher.exe is illegal in Win32 application" (rough translation of the Hebrew message. It makes little sense in that language, too). Running on Windows XP.

  16. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Try downloading this and putting it in the same directory as NXPatcher.exe:

    http://download.dll-files.com/7c3b44...zip?0WLmR0dJgS

    If that still doesn't work, please post a screenshot of the error message.

    Can't do anything about that. All I can say is "works for me". Try downloading it without Orbit.

  17. Orbital Bee Cannon
    IGN: SaptaZapta
    Server: Kradia
    Level: 275
    Job: Hero
    Guild: Matriarchy
    Alliance: Peaceful

    Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    This link has expired.

    Also the English version of the error is apparently "is not a valid Win32 application".

  18. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    Find msvcr110.dll online, download it, and put it in your NXPatcher directory.

    If it's really saying that, then it might be that the download is corrupted. Try downloading it again.

  19. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    In doing some more research on the patch format, I have discovered that Nexon's patching algorithm has a small mistake in it. It's very, very rare that this mistake might actually come to fruition, but it is possible.

    Programmers, Try to see if you can catch the mistake. I've labeled it in the spoiler.

    This is the file rebuilding algorithm ripped straight from patcher.exe:

    Code:
    for(Command = GetInt(&zlibBlock); Command != 0x00000000; Command = GetInt(&zlibBlock))
    {
        if((Command & 0xC0000000) == 0xC0000000)
        {
              //This is a repeat block. It's essentially run length encoding.
              repeatedByte = Command & 0x000000FF
              lengthOfBlock = (Command & 0x3FFFFF00) >> 8;
              //use memset in C to write to a buffer containing the repeatedByte for lengthOfBlock number of bytes, then write it to the file.
        }
        else if((Command & 0x80000000) == 0x80000000)
        {
              // This is a direct write block. The bytes to be written are contained directly in the zlib stream. Simply write these bytes out to the file.
              lengthOfBlock = Command & 0x7FFFFFFF;
        }
    
        else
        {
              //This means we take from the old file and write to the new file.
              lengthOfBlock = Command
              oldFileOffset = GetInt(&zlibBlock);
              //So open the old file, seek to the oldFileOffset, read lengthOfBlock number of bytes, then write those bytes to the new file.
        }
    }
    Mistake

  20. Default Re: NXPatcher - Create your own pre-patcher & list of Maple FTPs


    I need to learn C# for work, and what better way to do that than to fix NXPatcher?

    Currently I'm working on NXPatcher Advanced. Here are the following features I'm adding:

    - Complete rewrite in a different language.
    - Patching DLL created in C# to allow others to do whatever they want to with patch files.
    - NXPatcher logic and patch logic are now separate.
    - No more running out of realloc space. The C# garbage collector will use swap space instead of running out of RAM.

    I do not plan on rewriting NXPatcher Lite because it already does everything I need it to do.

    Here's an example of the code I'm working with to apply a patch file to a directory.

    Code:
    namespace NXPatcherCS
    {
        class Program
        {
            static void Main(string[] args)
            {
                var accessor = new PatchAccessor(@"H:\Maplestory\GMS\00155to00159.patch");
                accessor.ValidateCRC();
    
                // DumpDeflateStream returns an emitter, which is a dumb, low level accessor for the unpacked patch file. It only fetches the bytes and doesn't do any interpretation.
                var dumpPatchEmitter = accessor.DumpDeflateStream();
    
                // Setup where the dump file is, where all of the original files are, and where all of the new files will go.
                var dirName = Path.GetDirectoryName(dumpPath);
                var outDir = Path.Combine(dirName, "patcher");
    
                // Let's patch, baby!
                var dpa = new DumpPatchApplier(dumpPatchEmitter, dirName, outDir);
                dpa.ApplyPatch();
            }
        }
    }
    I tested this code on a 600 MB patch file. While there was a performance penalty for using C# instead of C/C++, at least it will patch now. For some reason, my algorithm soaks up RAM worse than Chrome when patching sound.wz. I will need to profile my code to figure out what's taking up gobs of RAM.

    Already written features:
    - Access patches, check CRCs/headers, and dump the patch file
    - Read the dumped patch files
    - Apply the dumped patch files
    - Accessor for patch EXE files
    - Writer for patch EXE files

    Still need to write:
    - NXPatcher Advanced logic
    - WZ version checking
    Last edited by Fiel; 2015-10-17 at 05:43 PM.

  21.  

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •