Unable to patch DDO 8 to 9. Already specified new patchclient.dll in config

Bug #496113 reported by lumikant
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PyLotRO
Triaged
Undecided
Unassigned

Bug Description

It looks similar to #464295 in that when I try to patch I get the same message repeated three times. It looks like they were still having this issue after the fix you gave them, so I don't know if its related. Thanks for the great program.

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')

    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.

    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')

    --highres : Patch high res data.
    --language : The language to patch.

    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.

    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

*** Finished ***

Revision history for this message
lumikant (lumikant) wrote :

Extra info, pylotro 0.1.11, wine-1.1.34, Linux Billengate 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux. I used pylotro from source and sudo python setup.py install to install.

Revision history for this message
Alan Jackson (ajackson-bcs) wrote :

All I can do is repost what I said in the other bug report, it looks like it is choking when detecting the language file(s).

Find the file PyLotRO/PyLotROLauncher/PatchWindow.py, edit that and go to line 117 (just before a line that reads for arg in patchParams) and put the following (you'll need 3 tabs in front of it). Save it and reinstall PyLotRO. When you go into patch it should show the parameters being used at the top of the window, paste them in here and I'll see if there is a problem.

self.uiLog.txtLog.append(QtCore.QString(patchParams))

Also looking in your game directory what is the exact case of any files starting client_local_?

Sorry I can't offer anything more concrete at the moment.

Revision history for this message
lumikant (lumikant) wrote :

It's client_local_English.dat but it looks like its trying to run it with all capitals, which could cause the problem. I have DDO installed on a ntfs file system if that makes a difference. The actual path is /media/hdd2/Games/ddo/client_local_English.dat. In the main launcher the capitalization is correct, but not so in these logs. Thanks for the quick response. Here's the log after I added that line.

rundll32.exe ddopatcher.dll,Patch patch.ddo.com:80 --language /MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH --productcode DDO --filesonly
GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')

    --dataonly : only download and patch data.

    --filesonly : only download and patch files.

    --forward : The forward directory. (default is '.\forward')

    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD2/GAMES/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.

    --temp : The temp directory. (default is '.\temp')

*** Finished ***

Revision history for this message
Alan Jackson (ajackson-bcs) wrote :

I think it is because it is sitting on an NTFS partition, I know the general suggestion from the Wine guys/gals is not to run from NTFS as it has caused some oddities in the past.

What I am surprised about is that PyLotRO recognised the language file yet then failed to recognise it correctly and put the proper language code in.

I'd copy your DDO to a Linux drive and give it another go, if it works then we know that was the problem, if it doesn't I'll do some more digging.

Revision history for this message
lumikant (lumikant) wrote :

Moved the whole thing over to an ext4 file system and I still get a similar message. What it looks like to me, someone with dubious coding credentials, is that its pulling the / from the beginning of /MEDIA/HDD3/... and applying the rest as an argument. I could just be wrong though. Just to be clear, the new path is /media/hdd3/ddo/client_local_English.dat

rundll32.exe ddopatcher.dll,Patch patch.ddo.com:80 --language /MEDIA/HDD3/DDO/CLIENT_LOCAL_ENGLISH --productcode DDO --filesonly
GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD3/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')

    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.

    --language : The language to patch.
    --noapply : download patches but don't apply them.

    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD3/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

GetConsoleScreenBufferInfo 5
Unrecognized argument 'MEDIA/HDD3/DDO/CLIENT_LOCAL_ENGLISH'

                    : <patch server>: The address:port of the
                      patch server.
    --app : The application directory. (default is '.')
    --backup : The backup directory. (default is '.\backup')
    --dataonly : only download and patch data.
    --filesonly : only download and patch files.
    --forward : The forward directory. (default is '.\forward')
    --highres : Patch high res data.
    --language : The language to patch.
    --noapply : download patches but don't apply them.
    --productcode : Unused. Provided here for backward compatibility.
    --temp : The temp directory. (default is '.\temp')

*** Finished ***

Revision history for this message
Alan Jackson (ajackson-bcs) wrote :

Hmm very odd I can see what I think is causing the problem but I can't work out why.

OK try this as it might help shed some more light on it for me.

Edit PyLotROUtils.py, around line 349 it should read for name in glob.glob("%s%sclient_local_*.dat" % (runDir, os.sep)):
on the next line down insert a blank line then tab 3 times and enter:
print(name)

on the line after temp = name.replace("%s%sclient_local_" % (runDir, os.sep), "").replace(".dat", "") insert another blank line and tab three times then add:
print(temp)

Re-install but run it via a terminal (ie run using pylotro) it should dump out the full path of the language file followed by just the code (English in your case), it is this second line that seems to be getting screwed up, the first line will show me exactly what is being passed to create the second line. Hopefully that will spark the light bulb moment for me.

Revision history for this message
lumikant (lumikant) wrote :

So figure this out. I changed those two lines, ran the update, and it worked. No error. Mind you, I see the output I added in my terminal, but its in the process of patching atm. I'll update if anything happens. Still seems odd though, that someone else would have had the same issue.

Revision history for this message
lumikant (lumikant) wrote :

Patched and ran fine. Still no idea why it worked after I added those two lines, as all they did was print the paths. Thanks for all your help and the great program.

Revision history for this message
Alan Jackson (ajackson-bcs) wrote :

I'll leave this open as triaged in case someone else has a similar problem, the info I need can be found using the tweaks I posted.

As to why it should suddenly start working after inserting a couple of print statements, well that has me baffled (if you are brave you could remove those statements and see if it breaks again, that would really be odd).

Glad it's working for you now.

Changed in pylotro:
status: New → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.