Page 1 of 17 12311 ... LastLast
Results 1 to 10 of 168

Thread: Manual Patching

  1. #1
    *headdesk* Kadalyn's Avatar
    Join Date
    Oct 2010
    Location
    Oregon
    Posts
    1,584

    Post Manual Patching

    Apparently it's a common problem (who knew!) that a lot of people don't understand what patching actually is, so allow me to explain the logic of patching.
    Patching is the process of adding new information or code over the old information or code with the intent of bringing the package up to the equivalent of the current version. The process isn't magic, you can't just change the final version and expect it to be correct. Let's do a visual example:
    Say the first 3x2 rectangle is the videos folder, the second is music folder, and the third is the packages folder.
    Code:
    ▓▓▓    ▕░░ ▏   ██▓    ▕   ▏   ██▓
    ▓▓▓    ▕ ░ ▏   ▓█▓    ▕   ▏   ▓█▓
    
    ▓▓▓    ▕░  ▏   █▓▓    ▕   ▏   █▓▓
    ▓▓▓    ▕  ░▏   ▓▓█    ▕░  ▏   █▓█
    
    ▓▓▓    ▕ ░░▏   ▓██    ▕   ▏   ▓██
    ▓▓▓    ▕░  ▏   █▓▓    ▕  ░▏   █▓█
    115  115->116  116  116->117  117
    If you look at each full version (115, 116, and 117) you can see what the expected result is. 115->116 is the patch, what we call a difference between the two versions. You can visually see here how ▓ + ░ = █
    So what happens to the silly billy that doesn't understand the logic, and tries to apply 116->117 over 115?
    Code:
    ▓▓▓    ▕   ▏   ▓▓▓
    ▓▓▓    ▕   ▏   ▓▓▓
    
    ▓▓▓    ▕   ▏   ▓▓▓
    ▓▓▓    ▕░  ▏   █▓▓
    
    ▓▓▓    ▕   ▏   ▓▓▓
    ▓▓▓    ▕  ░▏   ▓▓█
    115  116->117  ERR
    That sure doesn't look like the 117 we wanted, does it?

    Hopefully that explains what patching is and how it works. Tell me if it doesn't, and ask me for the clarification you need so I can add it.

    ATTN: If you're just installing a manual patch DON'T READ THIS. (DERP) This a tutorial for my successors as much as it is a release thread. SCROLL DOWN FOR RELEASES AND INSTALL INFORMATION.

    Hi okay there were a lot of changes lately so as a run-down:

    There is no more LIST functionality on the FTP server, so you have to automate downloads.

    Nexon gave up on manual patches and does not upload them anymore, so players making them is the only way to get them.

    Patch piece extensions have changed from .0 etc to .000 etc as of version 165.

    I've made a new script in Python so it will work on both Windows and Linux. This downloads the files, verifies them, and makes the patch. It's very easy to use for a CLI program. Everything's prompted instead of using command line arguments. You may download it here. You will need Python. I've only tested this on 2.7.4 on Linux, but it should work on 2.6+ and 3.0+ on Linux and Windows both.

    Basic Information
    Here we will find some necessary information about patching.

    patch_accept defines whether you should be patching or not. 1 for OK, 0 for don't do it. Also when it says 0, the launcher will say the game is in Maintenance and not allow you to click Game Start.

    local_version and main_version never seem to be different, but one of them is the current version.

    local_ftp and main_ftp always seem to be the same as well. You'll notice below that I don't mention the "game" folder. Well, ages ago - like version 79, there was a game folder. It used to be a real folder, then it was made into a redirect to the base folder. Now it's gone. The patcher likely tries to CWD there, but it fails and ignores the failure.

    launcherinfo is the current launcher version.

    login and arg are used by the launcher to form the command line sent to Client.exe

    addin I have no idea.

    lang is the filename of the language pack checksum(?).

    FTP Structure:
    There are folders for each hosted version (85 and 91+).
    There is a folder named PTS with the PTS versions as subfolders (9+).

    There are files for each hosted launcher version. They take the form launcher_[ver].bin and despite the name they are executables. Note that these do change slightly when the official launcher downloads them, but they work as is. I don't know how they are modified.

    The current hosted launchers are: 113, 124, 126, 131, 140, 143, 147

    When a new launcher is uploaded the file mabinogi.txt is updated. This is the checksum for the latest launcher. The format is the standard verification format as seen below. However, this does not have spaces after the commas.

    Within a version folder we will find the patch pieces for version differences, generally up to four versions back. We will also find that patch pieces for the full version and the language pack.

    Each patch has an associated verification file of the same name as below with a .txt extension. For instance: 165_to_166.txt or 166_full.txt. These are of the standard verification format as seen below. The files listed here are the only ones used, in the rare event that extra pieces are uploaded.

    The patch pieces are of the format: [prev]_to_[cur].[piece] where piece is padded with 0s to be three digits long. For instance: 165_to_166.000

    The full pieces are different, and of the format: [cur]_full.[piece] though the piece numbers act the same way.

    These pieces are a split zip archive. Concatenate them together with a tool or the command line.

    Now, download the file mentioned in "lang" from the patchinfo. The 0x28th byte of this, until the end of the file, contains the name of the language pack. This is always [cur]_language.p_ but you know. Otherwise I don't understand this file format.

    The language.p_ file you download is simply a zip archive containing the language.pack. So change the extension to .zip and extract as usual.

    It's worth mentioning that randomly, sometimes, there is a language.pack or language.p_ (that is, without the version number) directly available. They're not really important, as I don't think the patcher uses them. The former is just the unpacked version and the latter is a copy of the expected file (sometimes it differs, but I've never looked into it).

    The language pack may change at any point before a new game version is released. The patcher checks this separately.

    Verification Format:
    The first line is the number of lines.
    Every line after that is a string of the form: [filename], [size in bytes], [MD5 checksum]

    Manually Browsing:
    So in order to dick around and probe the server, I was doing this in a Python console. Here are some tips if you do want to probe.

    Setup:
    Code:
    from ftplib import FTP
    f = FTP("mabipatch.nexon.net")
    f.login()
    To easily check if a directory exists, you can attempt to change to that directory with: f.cwd("165") or of course an absolute f.cwd("/165")

    To easily check if a file exists, you can use the size command: f.size("163_to_165.000")
    This of course checks in the current directory, but again, you can use absolute paths.

    Other commands: pwd(), quit()

    You can retrieve a text file from the command line if you want, but binary files have to be ported into files.

    Text file: f.retrlines("RETR mabinogi.txt")
    Binary file:
    Code:
    o = open("launcher_147.bin", "wb")
    f.retrbinary("RETR launcher_147.bin", o.write)
    o.close()
    Last edited by Kadalyn; 09-19-2013 at 02:18 PM.
    Alexina - Kadalyn - Compress Mage (ice/healing) - Master Apothecary
    Mari - Mufflyn - Newbie Rogue
    tumblr

  2. #2
    *headdesk* Kadalyn's Avatar
    Join Date
    Oct 2010
    Location
    Oregon
    Posts
    1,584
    How to install
    1) Find the version you need. That is: the version you have installed then _to_ then the latest version.
    2) Download it, it will be a zip archive, or split 7z archive.
    2a) Save them anywhere, it doesn't matter
    3) Unzip the archive to C:\Nexon\Mabinogi
    3a) Yes, overwrite everything.

    IF THE LAUNCHER IS STILL GIVING YOU TROUBLE:
    1) Right-click your desktop and select Create Application Shortcut
    2) In the window that pops up there will be a section labeled Target
    3) Copy/paste this into that field:
    Code:
    C:\Nexon\Mabinogi\Client.exe code:1622 ver:166 logip:208.85.109.35 logport:11000 chatip:208.85.109.37 chatport:8002 setting:"file://data/features.xml=Regular, USA"
    This will be updated if there are changes. So if you have issues connecting, change your target to the code above again.
    Last edited by Kadalyn; 09-18-2013 at 06:26 PM.
    Alexina - Kadalyn - Compress Mage (ice/healing) - Master Apothecary
    Mari - Mufflyn - Newbie Rogue
    tumblr

  3. #3
    *headdesk* Kadalyn's Avatar
    Join Date
    Oct 2010
    Location
    Oregon
    Posts
    1,584
    If you don't have the latest music for the game, try downloading the Korean version's music (Note that this is missing some too, or may be renamed or something, I don't know! Try combining the two packs). Alternatively, you can grab them from here (Thanks Muu <3)

    Releases
    I have every patch, if you need one, just ask.

    Link to all of the posted ones.

    Derp, they were deleted. Made an account this time.
    Last edited by Kadalyn; 03-11-2012 at 04:37 PM.
    Alexina - Kadalyn - Compress Mage (ice/healing) - Master Apothecary
    Mari - Mufflyn - Newbie Rogue
    tumblr

  4. #4
    New Milletian
    Join Date
    Mar 2011
    Posts
    5
    Your fix worked great for 78 to 79. Now I can't connect to the FTP server to patch 79 to 80. Nexon just fails so much.

  5. #5
    New Milletian
    Join Date
    Oct 2010
    Posts
    3
    Same story. Was able to use the manual patch from before.


    The only part i get tuck at now is the portion where im copying in CMd.... For whatever reason the first file in the list doesnt want to copy giving the file doesnt exist etc etc.

    But meh Nexon needs to fix this anyhow...


    Any advice is well appreciated.

  6. #6
    *headdesk* Kadalyn's Avatar
    Join Date
    Oct 2010
    Location
    Oregon
    Posts
    1,584
    EDIT: Read that wrong.
    Also, I don't know why your copy wouldn't be working. Copy your command here for a look? If it looks right to me it may just be an inconsistency between versions. This was written for Windows XP.

    In any event, 79->80 is released in a more idiotproof format.
    Last edited by Kadalyn; 05-05-2011 at 08:50 PM.
    Alexina - Kadalyn - Compress Mage (ice/healing) - Master Apothecary
    Mari - Mufflyn - Newbie Rogue
    tumblr

  7. #7
    M-World Staff Skitty's Avatar
    Join Date
    Oct 2010
    Posts
    29
    Trying our damndest to get a better workaround, hold tight.

  8. #8
    *headdesk* Kadalyn's Avatar
    Join Date
    Oct 2010
    Location
    Oregon
    Posts
    1,584
    lol beat you to it.
    Alexina - Kadalyn - Compress Mage (ice/healing) - Master Apothecary
    Mari - Mufflyn - Newbie Rogue
    tumblr

  9. #9
    New Milletian
    Join Date
    Mar 2011
    Posts
    5
    Thank you Kadalyn.

  10. #10
    M-World Staff Skitty's Avatar
    Join Date
    Oct 2010
    Posts
    29
    Victory! I just wish I knew why the compiled mabiver exe doesn't work on windows.

Posting Permissions

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