Falcon BMS Alternative Launcher (Easy Setup, Keep Joystick Assignments)
-
This post is deleted! -
A search feature for the control mapping would be a welcome addition to this amazing piece of kit.
-
Do a test by launching BMS via stock Hub.exe or directly running Falcon BMS.exe
Launch BMS only to change theater, do not touch any other page but just change theater, then close BMS just after theater has been changed.Could you also check and show your “Falcon BMS 4.33 U1\Data\Terrdata\theaterdefinition\theater.lst” ?
mine’s like this# LIST OF ALL KNONW THEATERS Add-On Balkans\Terrdata\theaterdefinition\Balkans.tdf Add-On Israel\Terrdata\theaterdefinition\Israel.tdf Terrdata\theaterdefinition\Korea KTO.tdf Add-On Korea TvT\Terrdata\theaterdefinition-v3.61\Korea_TvT_v3.61.tdf Add-On Korea Strong DPRK\Terrdata\theaterdefinition\Korea Strong DPRK.tdf Add-On 35th VFW KTO\Terrdata\theaterdefinition\35th VFW KTO.tdf Add-On Kurile\Terrdata\theaterdefinition\kurile.tdf
-
First of all, thank you…
You said in the OP:
When you launch BMS through this app, it auto generates proper setup files and overwrites them for current device order before BMS find them changed and initialize your setup. You don’t have to worry about SETUP mixing up DX order nor resets axis setups even if device sort or numbers have been changed.So the one thing i was disillusioned about with the BMS deviceOrder.txt and deviceSorting.txt mechanism, was i thought these preserved the callback mapping regardless the USB port used and WinID enumerated, when DX controllers were plugged in or out regardless the port used. Turns out this is true ONLY for the primary controller with the X&Y stick axes. Turns out, the other controllers can have their DX button/hat/axes assignments splashed around when devices are added/removed/moved. This happened to me recently when I swapped out an older ICP for a newer one.
Sooooo…
If this new BMS launcher preserves ALL devices mapping rather than just the primary; then this is the enhancement droids I was looking for. Is this the case? -
Sooooo…
If this new BMS launcher preserves ALL devices mapping rather than just the primary; then this is the enhancement droids I was looking for. Is this the case?It does.
My app saves DX/AXIS assignment per joystick.
For instance: If you setup joystick like following
Joystick - HOTAS Warthog | DX1=Trigger1st detent, DX2=Pickle, Axis X=Roll, Axis Y=Pitch Throttle - HOTAS Warthog | DX1=VHF, DX2=UHF, Axis X=Cursor X, Axis Y=Cursor Y
my app saves those information as Setup.v100.Joystick - HOTAS Warthog <guid>.xml
Setup.v100.Throttle - HOTAS Warthog <guid>.xml</guid></guid>
to the User\Config directory.If your device order WIN ID is
1.joystick 2.Throttle
My app writes BMS - FULL.key following linesSimTriggerFirstDetent 0 -1 -2 0 0x0 0 SimPickle 1 -1 -2 0 0x0 0 SimTransmitCom1 32 -1 -2 0 0x0 0 SimTransmitCom2 33 -1 -2 0 0x0 0
If another day you got new rudder pedal, plugged it and WIN ID somehow becomes
1.joystick 2.rudder Pedal 3.Throttle
My app writesSimTriggerFirstDetent 0 -1 -2 0 0x0 0 SimPickle 1 -1 -2 0 0x0 0 SimTransmitCom1 64 -1 -2 0 0x0 0 SimTransmitCom2 65 -1 -2 0 0x0 0
This is why you don’t need to care about any device environment changes.
My app also overwrites proper axis setup hex codes so it also remembers axis setup. -
I launched both from the stock launcher and the bms.exe and did exactly as you said and the registry still would not update. also checked my theater.lst and it is still populated appropriately. I did a fresh install of BMS and just overwrote the Falcon BMS 4.33 U1\Data\ folder with my old one with all the theaters and campaigns and everything works as it should. so the issue is most likely something injected into the config files, maybe.
I wont be reinstalling your launcher for a while as I have some BMS events coming up this weekend. but a minor bug report: The launcher CTD when you double right click anywhere in the “KeyMapping” tab. possibly other tabs as well.
-
Really nice looking App, for my quick tests it seemed to work fine.
And now, as you might expect the inevitable features request.
Can you add or provide a means for users to add extra icons/programs like Simshaker, VoiceAttack or other custom application to the launcher.
I know its a big ask, but this is what you should expect if you provide such an interesting applications.
Who knows you maybe able to charge for it like other 3rd party utilities.
Thanks and regards
-
Do you intend to release the source code to github? There are some hangs and stuff, and I’m sure there are people who know C# a lot here. It would be better for yourself because I remember you mentioned that you have trouble with time and skill, and it would better for everyone.
-
Is there a way to map a second POV hat (like the one on the throttle of a t16000m hotas setup) to DX buttons?
-
I launched both from the stock launcher and the bms.exe and did exactly as you said and the registry still would not update. also checked my theater.lst and it is still populated appropriately. I did a fresh install of BMS and just overwrote the Falcon BMS 4.33 U1\Data\ folder with my old one with all the theaters and campaigns and everything works as it should. so the issue is most likely something injected into the config files, maybe.
Thanks for determining the problem. Unfortunately, I could not reproduce it. If you have a chance to see it again could you send me the config files?
Can you add or provide a means for users to add extra icons/programs like Simshaker, VoiceAttack or other custom application to the launcher.
Possible. However the main reason I added the shortcuts for those 3rd party application was to introduce BMS begginers useful tools thats not come with its installation.
Thus they also have a function to jump to each download pages when user does not have those softwares yet.If I updated a function which will allow users to add any 3rd party tools shortcut it might not have an icons and shortcuts for download pages.
It might be something similar to adding steam library a non steam game.Do you intend to release the source code to github?
Yeah, I am thinking of… I might try.
Is there a way to map a second POV hat (like the one on the throttle of a t16000m hotas setup) to DX buttons?
No. Because BMS does not recongnize POV hat of non primary devices (primary device is the joystick which has assigned roll and pitch control).
What I can do is only autogenerating and overwriting of BMS config files. I can not hack any BMS codes itself.One possible way is to update launcher to emulate keyboard behind BMS…
-
One possible way is to update launcher to emulate keyboard behind BMS…
Yes please. Not being able to bind coolie hat is a pain.
Also is there any way to get BMS or the launcher to differentiate between buttons that are pressed normally and buttons that are held? I want to set up my pinky button so that when held it becomes a DX shift key and when pressed short it works as a regular pinky button. Same with the paddle switch, held for A/P disconnect and short press for recentre Track IR.
I’m currently trying to emulate Morphine’s warthog profile. -
You can set shifted DX layer via my launcher, but make any other DX buttons to differentiate short/hold press, is only possible via TARGET.
It might be also possible to add a keyboard emulation function with such a differentiation but it is almost same work to reproducing Thrustmaster’s TARGET software…… -
This post is deleted! -
Thanks, I’ll check out Xpadder.
-
For some reason Hub.exe stopped working for me yesterday.
In taskmanager I just see it constantly spawning werfault.exe’s, is there an error log or something?I can still start falcon with the original hub.exe and keymappings are still working
-
For some reason Hub.exe stopped working for me yesterday.
In taskmanager I just see it constantly spawning werfault.exe’s, is there an error log or something?I can still start falcon with the original hub.exe and keymappings are still working
For me the launcher not even opens up.
edit:
I have tried to restore all the files mentioned in the first post, but it hasnt solve anything.
now my default launcher is ruined… i have to reinstall all falcon for that i guess … waste of time … -
For some reason Hub.exe stopped working for me yesterday.
In taskmanager I just see it constantly spawning werfault.exe’s, is there an error log or something?I can still start falcon with the original hub.exe and keymappings are still working
Did my Hub.exe stopped while you using it or one day it suddenly become unlaunchable?
Do my launcher start after restarting PC? if not send me a Setup.v100.<filename>.xml located at User/Config folder, and remove them.@AsafBoy:
I have tried to restore all the files mentioned in the first post, but it hasnt solve anything.
now my default launcher is ruined… i have to reinstall all falcon for that i guess … waste of time …Just simply restore original Hub.exe you have backed up.</filename>
-
Did my Hub.exe stopped while you using it or one day it suddenly become unlaunchable?
Do my launcher start after restarting PC? if not send me a Setup.v100.<filename>.xml located at User/Config folder, and remove them.Just simply restore original Hub.exe you have backed up.</filename>
I did, it restored the original launcher howerver it ****ed the game window itself (the game is runing but i cant make it show up)
after clear installation its working fine, with minimum crashes (not like the first time), for now ill suggest you to mention reinstalling falcon before applying the launcher
-
@AsafBoy:
after clear installation its working fine, with minimum crashes (not like the first time),
You mean this time MY APP is running after the clean installation of BMS? Okay, I’ll write it to the OP.
-
Did my Hub.exe stopped while you using it or one day it suddenly become unlaunchable?
Do my launcher start after restarting PC? if not send me a Setup.v100.<filename>.xml located at User/Config folder, and remove them.</filename>Sorry for the late reply.
Restarting doesn’t/didn’t help, still not working.
I removed the files you said and nothing changed, but this time I checked the windows event log, I found 2 exception errors and one with a stacktrace from the .net runtime, which might help you:Application: Hub.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IndexOutOfRangeException at FalconBMS_Alternative_Launcher_Cs.KeyAssgn..ctor(System.String) at FalconBMS_Alternative_Launcher_Cs.MainWindow.ReadKeyFile(System.String) at DynamicClass.CallSite.Target(System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, FalconBMS_Alternative_Launcher_Cs.MainWindow, System.Object) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Runtime.CompilerServices.CallSite, System.__Canon, System.__Canon) at FalconBMS_Alternative_Launcher_Cs.MainWindow.Window_Loaded(System.Object, System.Windows.RoutedEventArgs) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) at System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs) at System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject, System.Windows.RoutedEvent) at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(System.Object) at MS.Internal.LoadedOrUnloadedOperation.DoWork() at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object) at System.Windows.Media.MediaContext.RenderMessageHandler(System.Object) at System.Windows.Media.MediaContext.Resize(System.Windows.Media.ICompositionTarget) at System.Windows.Interop.HwndTarget.OnResize() at System.Windows.Interop.HwndTarget.HandleMessage(MS.Internal.Interop.WindowMessage, IntPtr, IntPtr) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(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.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
I guess for more info I would need the source or a Debug build