Jump to content

WoTTweakerPlus.2.2.0.exe won't launch properly


Go to solution Solved by Aslain,

Recommended Posts

Posted

WoTTweakerPlus's window opens for a split second and closes. All options seem to be grayed out. A throbber in the center is visible. Removing all mods doesn't help.

Posted

I don't have an antivirus (Windows antivir thing is permanently disabled)

 

What doesn't help:

 

- Running as Administrator

- Cleaning the Windows registry from all traces of WoTTweaker

- Restoring original engine_config.xml

- Enabling different compatibility options

- Removing all mods

 

The EXE is not blocked by the system, because WoTTweaker's window is displayed for half a second and then closed. I can tell it works for a bit, because it recognizes WoT installation path correctly. It just closes by itself without a message for some reason...

 

Also an older version of WoTTweaker is working (but is incompatible with the current WoT version of course). I never had problems with WoTTweaker's previous versions.

 

The OS is Windows 11 LTSC. I have 0 other problems with my system and apps.

 

I'm out of ideas.

  • Administrator
Posted

Check the system logs (Event Viewer), maybe there's something there. Often applications need additional components that many already have in the system, such as Microsoft Visual C++ Redistributables (2010–2022), .NET Framework (sometimes older versions, e.g., 4.6 or 3.5)

 

However if something was working recently but is not now, then it sounds like a typical antyvir issue.

Posted (edited)

Thanks for the Event Viewer tip, WoTTweaker's crash dump is stored there:

Spoiler

Application: WoTTweakerPlus.2.2.0.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentException
   at System.Text.Encoding.GetEncoding(Int32)
   at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
   at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(System.String)
   at WoTTweakerPlus.TankDestruction..cctor()

Exception Info: System.TypeInitializationException
   at WoTTweakerPlus.TankDestruction.GetFiles()
   at WoTTweakerPlus.TankDestruction.Worker_GetState(System.Object, System.ComponentModel.DoWorkEventArgs)
   at System.ComponentModel.BackgroundWorker.OnDoWork(System.ComponentModel.DoWorkEventArgs)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(System.Object)

Exception Info: System.Reflection.TargetInvocationException
   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
   at WoTTweakerPlus.TankDestruction.Worker_GetStateCompleted(System.Object, System.ComponentModel.RunWorkerCompletedEventArgs)
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(System.ComponentModel.RunWorkerCompletedEventArgs)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Application.RunDispatcher(System.Object)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at WoTTweakerPlus.App.Main()

 

I asked ChatGPT about it and it said:

 

Quote

The crash is not caused by the .NET runtime version. The stack trace shows an application-level exception triggered while reading a ZIP file with SharpZipLib.

Key line in the stack trace

Exception Info: System.ArgumentException
   at System.Text.Encoding.GetEncoding(Int32)
   at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()

This means:

  1. The app opens a ZIP file:

    ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(System.String)
    
  2. While parsing ZIP entries, SharpZipLib reads the filename encoding stored in the archive.

  3. It calls:

    Encoding.GetEncoding(codepage)
    
  4. That code page is not available on your system, so .NET throws ArgumentException.

This then cascades into:

  • TypeInitializationException in TankDestruction..cctor()

  • TargetInvocationException

  • unhandled exception → app terminates.


Most likely cause

The ZIP file contains filenames encoded with a legacy code page (often Russian/Asian encodings like 866, 1251, etc.), but the encoding provider isn't available.

This commonly happens when:

  • The program was written for older Windows/.NET environments

  • The system lacks certain code pages

  • The ZIP file is corrupted

  • The ZIP was created with non-UTF8 encoding

Since this app is a World of Tanks tweaker, the ZIP probably contains mod resources.


Things to check (most likely → least)

1️⃣ Corrupted or incompatible ZIP file

The program likely loads a ZIP at startup.

Try:

  • deleting its mods/cache/resources folder

  • reinstalling the program

  • replacing the ZIP resources.


2️⃣ Missing Windows legacy code pages

Rare but possible if using stripped Windows builds.

Install Language for non-Unicode programs support.

Check:

Control Panel
→ Region
→ Administrative
→ Change system locale

Ensure it isn't set to something unusual.


3️⃣ Running on newer .NET behavior

Some apps relying on legacy encodings need:

System.Text.Encoding.CodePages

But that would require the developer to fix it.


4️⃣ Bug in the program

TankDestruction..cctor() is a static constructor.
If it fails once, the type becomes unusable and the app crashes.

That means the developer assumed something about the ZIP file that isn't true.


Most probable cause:
A ZIP file with unsupported or invalid filename encoding being opened by SharpZipLib.


💡 If you want, tell me:

  • where the program is installed

  • what files are in its folder

  • whether there's a *.zip near the executable

I can likely pinpoint the exact file causing the crash.

 

I guess the ZIP in question is one of the WoT *.pkg resource files and something has changed in the latest WoTTweaker version that makes it unable to open it OR  maybe WoTTweaker is incompatible with Windows 11 LTSC.

My Windows 11 LTSC is installed from stock Microsoft ISO image, it has only one language: English, and the region is set to Europe.

 

I have the latest .NET Framework 4.0 Runtime installed.

 

At this point I'll assume the problem is unfixable on my side and that it can be easily fixed by changing the expected code page in the program's code.

 

I hope phantasm sees this.

Edited by BugReportDude
  • Administrator
Posted

What size is your WoTTweakerPlus.2.2.0.exe ? It should be 835584 bytes. Can you check it on another pc / laptop?

 

For me it's launching just fine, no issues.

Posted

It's the same size: 835584 bytes, md5sum is: 0e7ec13e6a81e223fb5466177c07272d. It came from the latest version of your modpack (great thanks for it!): Aslains_WoT_Modpack_Installer_v.2.2.0.0_04.exe.

 

I don't have access to other PC.

 

I checked and my system supports CP866/1251 code pages.

 

ChatGPT diagnosis of the problem:

 

Quote

The crash is caused by:

SharpZipLib misreading an invalid code page value from a WoT .pkg archive and passing it to Encoding.GetEncoding(), which throws ArgumentException.

Not a .NET runtime issue and not missing Cyrillic support.

 

As to why it works on your system? Maybe it has something to do with you running the NA version?

 

At this point I'll stop trying to solve this problem.

 

I hope phantasm sees this so he can take steps if he wishes to.

 

Thank you Aslain for trying to help!

  • Administrator
Posted

On the Eu and Asia is the same and working, it was just an example. I don't know if he will see this.

Posted

Thanks for the info.

 

I narrowed down the crash cause to a single .pkg file:

 

World_of_Tanks_EU\res\packages\shaders.pkg

 

With this file renamed or removed WoTTweaker doesn't crash (no Event Viewer log). It launches but all options are greyed out and the game path is not detected automatically. When I specify the path, a message window pops up:

 

Quote

Path to "World of Tanks" game folder is incorrect.

 

I tried verifying integrity of WoT installation - WoTTweaker still crashes.

 

I tried repackaging shaders.pkg with ZIP Store method - WoTTweaker still crashes.

 

I checked file names inside shaders.pkg archive - no files contain characters outside ASCII range.

 

The file size of shaders.pkg is 143791441 bytes, md5sum: de872a3e26656b1a8c89048672e172fb.

 

  • Administrator
Posted

Maybe you are not launching this app with a proper priviledges, and that pkg have different settings.

Posted

I tried running WoTTweaker as Administrator, via cmd.exe with Administrator privileges, and setting Run as administrator in exe's Compatibility tab (which all have the same effect) - it doesn't change anything, IMO it's not the cause of the problem.

 

I found out that if I repackage shaders.pkg, WoTTweaker opens it correctly but then crashes while attempting to open next .pkg file. So theoretically I could repeat the repackaging process on all .pkg files that WoTTweaker opens on startup and then it would work properly. But I won't do that because it would be tedious and I don't really need WoTTweaker that much, I was just curious about something.

 

I run multiple tests with ChatGPT's assistance and this is its final conclusion:
 

Quote

💡 My suspicion level right now:

Cause    Probability
LTSC missing globalization tables    35%
SharpZipLib metadata bug    65%

Your earlier test where repacking fixed the crash strongly points to the SharpZipLib bug.

 

Basically, it's either WoTTweaker's incompatibility with Windows 11 (old SharpZipLib used in WoTTweaker that's buggy under newer Windows versions) or WoTTweaker's incompatibility with Windows 11 LTSC, which might be missing some additional language data that "full" Windows versions have.

Aslain, were you testing WoTTweaker under Windows 10 by chance?

  • Administrator
Posted

No I have not, I run it on Win11. That's all I can do here, I'm affraid, maybe this bug will be checked by the app author and maybe he will fix it in future if there is error on his side.

Posted

I found the solution: change Format to English (United States) in Windows Region settings.

 

WoTTweaker could be fixed by the author (phantasm) by explicitly setting default code page in the app's source code to something like US or UTF-8, which would make it work on every system. Without it C# SharpZipLib assumes one from the Windows Region -> Format setting (I had English (Europe) set) which apparently causes problems on stripped versions of Windows like LTSC.

wottweaker_bug_solution.png

  • Upvote 1
Posted

The updated version launches without a problem.

 

I have already reported this to Phantasm.

 

Thank you Aslain for managing this issue with the author.

 

 

  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.