1) Let me know what messages (If any) you saw. 2) Compress your profiles directory and link it. 3) Compress your Documents\The Witcher 3 directory and link it. 4) Include your profilemanager.log (if there is one)
If you're a brave soul you can try attaching a Debugger (e.g. Visual Studio) and reporting the specific exception. I'll fix any crashes as fast as I can, as of now I'm not seeing any on my end.
Most of the times the launcher will not actually start the game, in these cases the created debug.txt reads:
Saving Config Config Saved Preparing DLL Injection of DLL at D:\Games\WitcherIII\Hook.dll Launching IPC server Attempting DLL Injection Fatal Exception : System.ApplicationException: STATUS_INTERNAL_ERROR: Unknown error in injected assembler code. (Code: 5) bei EasyHook.RemoteHooking.CreateAndInject(String InEXEPath, String InCommandLine, Int32 InProcessCreationFlags, InjectionOptions InOptions, String InLibraryPath_x86, String InLibraryPath_x64, Int32& OutProcessId, Object[] InPassThruArgs) bei Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame()
The second issue is that the few times the game actually started it only showed the option to start a new game and not load the save files I copied into the designated profile. If this occurs, the debug.txt reads:
Saving Config Config Saved Saving Config Config Saved Saving Config Config Saved Saving Config Config Saved Saving Config Config Saved Saving Config Config Saved Preparing DLL Injection of DLL at E:\Games\WitcherIII\Hook.dll Launching IPC server Attempting DLL Injection DLL Injected into Witcher 3 Process with PID: 12708. Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_READ Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_READ Redirecting IO: d:\dokumente\the witcher 3\base\input.settings to D:\Games\W3profiles\NewGame+d:\dokumente\the witcher 3\base\input.settings with accces GENERIC_READ Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings.bak to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings.bak Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_WRITE Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_WRITE Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings.bak to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings.bak
I have unblocked the zip file and followed the instructions given in the discription.
It works great, however when I launch the game through Profile Manager I'm unable to use the steam overlay. I cannot shift+tab or have my fps counter while playing. Unfortunately that's a deal-breaker for me.
When I try to launch the program with arguments, the following dialog box appears: Witcher 3 Profile Manager has stopped working A problem caused the program to stop working correctly. Please close the program.
Debug.txt: Launching game with profile sdl at path C:\Games\The Witcher 3\Profile Manager\Profiles\sdl
That's all that's in the Debug file. Not very helpful.
Launching the program and selecting the profile manually has no issues. Only when I try to launch it with an argument.
Running Windows 10 (with the Creators Update)
Event Viewer gives the following details: Application: Witcher3Profile.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidOperationException at System.Windows.Window.set_Owner(System.Windows.Window) at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame() at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow..ctor()
Exception Info: System.Windows.Markup.XamlParseException at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(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.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 Profile_Manager.App.Main()
Ok can't seem to get Ver 2.0 to work at all on my set up. Perhaps it's a Windows 10 x64 thing running version 14352.1002 (RS1 release). 1. Unblocked and unzipped the program. 2. Set up a default profiles directory named it Profiles. 3. Ran the Program and pointed the options to that directory as default and pointed the program to my witcher3 exe. 4. Created two sub directories under Profiles, one called Helidoc and the other called Helidoc65 then added them with the program and they are listed in the profiles tab. 5. Copied my existing gamesaves to the gamesaves folder that the program created in the Helidoc folder ( I have yet to make a second character until I knew this was working).
Ran witcher3 using the programs Launch The Witcher 3 button (small window pops saying game is running and the game starts). Played for a few minutes and did both a quick save and a manual save then exited witcher3 normally. In my Profiles Helidoc gamesaves directory there were no extra saves other than what I had originally copied over. The save that I did in game both quick save and manual were in my Documents/Witcher3/gamesaves as normal. I've also noticed that if you try to run witcher3 a second time with out closing out of the program the game fails to launch and all you can do is exit the program and run it again. here what the debug log had.
Saving Config Config Saved Preparing DLL Injection of DLL at E:\downloads\Witcher3\ProfileManager\Hook.dll Launching IPC server Attempting DLL Injection DLL Injected into Witcher 3 Process with PID: 26260.
Saving Config Config Saved Preparing DLL Injection of DLL at E:\downloads\Witcher3\ProfileManager\Hook.dll Launching IPC server Fatal Exception : System.Security.HostProtectionException: If no random channel name is being used, you shall specify all allowed SIDs. at EasyHook.RemoteHooking.IpcCreateServer[TRemoteObject](String& RefChannelName, WellKnownObjectMode InObjectMode, TRemoteObject ipcInterface, WellKnownSidType[] InAllowedClientSIDs) at EasyHook.RemoteHooking.IpcCreateServer[TRemoteObject](String& RefChannelName, WellKnownObjectMode InObjectMode, WellKnownSidType[] InAllowedClientSIDs) at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame()
The protected resources (only available with full trust) were: None
The demanded resources were: None
Update: Just for the heck of it I downloaded your old version 1.07 and that seems to be working with Win 10 other than this error I get in the logs:
Error: opened using SMOID 332
So it seems to be hook/easyhook not playing nice with Win10 x64 any issues with the previous version I need to be aware of til it gets ironed out?
It attaches to The Witcher 3 and redirects the saves to a new folder by redirecting the low level Win32 API calls.
If it's really an issue I can upload it to github, the "Trojan" detection is actually caused by EasyHook which is located here: https://github.com/EasyHook/EasyHook
You can read more about how EasyHook works from the ModOrganizer STEP wiki: http://wiki.step-project.com/Guide:Mod_Organizer_Advanced
The program itself is written in C# and thus you can actually view the source code at anytime using a program like dotpeek: https://www.jetbrains.com/decompiler/
If it really concerns you I can upload the source to Github (as I mentioned you can already see it using dotpeek or any equivelant program) it'll just take a small amount of work to integrate git to VS retroactively.
65 comments
1) Let me know what messages (If any) you saw.
2) Compress your profiles directory and link it.
3) Compress your Documents\The Witcher 3 directory and link it.
4) Include your profilemanager.log (if there is one)
If you're a brave soul you can try attaching a Debugger (e.g. Visual Studio) and reporting the specific exception. I'll fix any crashes as fast as I can, as of now I'm not seeing any on my end.
Most of the times the launcher will not actually start the game, in these cases the created debug.txt reads:
Saving Config
Config Saved
Preparing DLL Injection of DLL at D:\Games\WitcherIII\Hook.dll
Launching IPC server
Attempting DLL Injection
Fatal Exception : System.ApplicationException: STATUS_INTERNAL_ERROR: Unknown error in injected assembler code. (Code: 5)
bei EasyHook.RemoteHooking.CreateAndInject(String InEXEPath, String InCommandLine, Int32 InProcessCreationFlags, InjectionOptions InOptions, String InLibraryPath_x86, String InLibraryPath_x64, Int32& OutProcessId, Object[] InPassThruArgs)
bei Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame()
The second issue is that the few times the game actually started it only showed the option to start a new game and not load the save files I copied into the designated profile.
If this occurs, the debug.txt reads:
Saving Config
Config Saved
Saving Config
Config Saved
Saving Config
Config Saved
Saving Config
Config Saved
Saving Config
Config Saved
Saving Config
Config Saved
Preparing DLL Injection of DLL at E:\Games\WitcherIII\Hook.dll
Launching IPC server
Attempting DLL Injection
DLL Injected into Witcher 3 Process with PID: 12708.
Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings
Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_READ
Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_READ
Redirecting IO: d:\dokumente\the witcher 3\base\input.settings to D:\Games\W3profiles\NewGame+d:\dokumente\the witcher 3\base\input.settings with accces GENERIC_READ
Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE
Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE
Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings
Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings.bak to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings.bak
Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav
Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav
Redirecting Save Verification: D:\Dokumente\The Witcher 3\gamesaves\*.sav to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\gamesaves\*.sav
Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_WRITE
Redirecting IO: D:\Dokumente\The Witcher 3\input.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\input.settings with accces GENERIC_WRITE
Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE
Redirecting IO: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings with accces GENERIC_WRITE
Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings
Redirecting Save Deletion: D:\Dokumente\The Witcher 3\\user.settings.bak to D:\Games\W3profiles\NewGame+D:\Dokumente\The Witcher 3\\user.settings.bak
I have unblocked the zip file and followed the instructions given in the discription.
I tried excluding the folder in my AV and yes I unblocked the .zip before unzipping, also made sure .net was installed.
When I try to launch the program with arguments, the following dialog box appears:
Witcher 3 Profile Manager has stopped working
A problem caused the program to stop working correctly. Please close the program.
Debug.txt:
Launching game with profile sdl at path C:\Games\The Witcher 3\Profile Manager\Profiles\sdl
That's all that's in the Debug file. Not very helpful.
Launching the program and selecting the profile manually has no issues. Only when I try to launch it with an argument.
Running Windows 10 (with the Creators Update)
Event Viewer gives the following details:
Application: Witcher3Profile.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
at System.Windows.Window.set_Owner(System.Windows.Window)
at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame()
at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow..ctor()
Exception Info: System.Windows.Markup.XamlParseException
at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri)
at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext)
at System.Windows.Application.DoStartup()
at System.Windows.Application.<.ctor>b__1_0(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.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 Profile_Manager.App.Main()
Any suggestions? Thanks.
Have you found a solution for this?
Requires a lot of time pouring through a HEX editor.
1. Unblocked and unzipped the program.
2. Set up a default profiles directory named it Profiles.
3. Ran the Program and pointed the options to that directory as default and pointed the program to my witcher3 exe.
4. Created two sub directories under Profiles, one called Helidoc and the other called Helidoc65 then added them with the program and they are listed in the profiles tab.
5. Copied my existing gamesaves to the gamesaves folder that the program created in the Helidoc folder ( I have yet to make a second character until I knew this was working).
Ran witcher3 using the programs Launch The Witcher 3 button (small window pops saying game is running and the game starts). Played for a few minutes and did both a quick save and a manual save then exited witcher3 normally. In my Profiles Helidoc gamesaves directory there were no extra saves other than what I had originally copied over. The save that I did in game both quick save and manual were in my Documents/Witcher3/gamesaves as normal. I've also noticed that if you try to run witcher3 a second time with out closing out of the program the game fails to launch and all you can do is exit the program and run it again. here what the debug log had.
Saving Config
Config Saved
Preparing DLL Injection of DLL at E:\downloads\Witcher3\ProfileManager\Hook.dll
Launching IPC server
Attempting DLL Injection
DLL Injected into Witcher 3 Process with PID: 26260.
Saving Config
Config Saved
Preparing DLL Injection of DLL at E:\downloads\Witcher3\ProfileManager\Hook.dll
Launching IPC server
Fatal Exception : System.Security.HostProtectionException: If no random channel name is being used, you shall specify all allowed SIDs.
at EasyHook.RemoteHooking.IpcCreateServer[TRemoteObject](String& RefChannelName, WellKnownObjectMode InObjectMode, TRemoteObject ipcInterface, WellKnownSidType[] InAllowedClientSIDs)
at EasyHook.RemoteHooking.IpcCreateServer[TRemoteObject](String& RefChannelName, WellKnownObjectMode InObjectMode, WellKnownSidType[] InAllowedClientSIDs)
at Witcher_3_Profile_Manager_with_Easy_Hook.MainWindow.LaunchGame()
The protected resources (only available with full trust) were:
None
The demanded resources were:
None
Update: Just for the heck of it I downloaded your old version 1.07 and that seems to be working with Win 10 other than this error I get in the logs:
Error: opened using SMOID 332
So it seems to be hook/easyhook not playing nice with Win10 x64 any issues with the previous version I need to be aware of til it gets ironed out?
I'm on windows 10 x64 (Enterprise) and it's working fine for me.
It attaches to The Witcher 3 and redirects the saves to a new folder by redirecting the low level Win32 API calls.
If it's really an issue I can upload it to github, the "Trojan" detection is actually caused by EasyHook which is located here:
https://github.com/EasyHook/EasyHook
You can read more about how EasyHook works from the ModOrganizer STEP wiki: http://wiki.step-project.com/Guide:Mod_Organizer_Advanced
The program itself is written in C# and thus you can actually view the source code at anytime using a program like dotpeek:
https://www.jetbrains.com/decompiler/