Jump to content
LaunchBox Community Forums

Recommended Posts

SteamLauncher

View File

SteamLauncher Plugin for LaunchBox

5/26/2018 - As of v0.9.0.2, the plugin now supports PC/Windows games, DOSBox games, and ScummVM games in addition to emulated games (roms).

UNBLOCK DLL AFTER DOWNLOADING: Neil9000 reminded me that Windows automatically "blocks" DLL files that are downloaded from the internet, so after following the instructions and placing the plugin DLL in your LaunchBox plugins directory, you need to right click the DLL, click 'Properties', and check the box at the bottom of the dialog that is labeled 'Unblock'.

SteamLauncher is a LaunchBox plugin designed to allow roms/emulators to easily be launched within Steam, directly from the LaunchBox/BigBox interface, without any complicated setup or technical know-how. Simply open the LaunchBox/BigBox context menu for any title and select the option labeled, "Launch via Steam".

Features

Here are just a few of the features or benefits provided by using this plugin:

  • Allow LaunchBox to do what its good at - be the sole organizer and maintainer of your rom collection, without having to duplicate its functionality in Steam (something it was not designed for)
     
  • Keep your Steam library clean and uncluttered by hundreds of emulator/rom shortcuts
     
  • Get all of the benefits of Steam's excellent overlay system while playing any rom or emulator
     
  • Take advantage of Steam's infinitely customizable controller configuration (bindings) for both the Steam Controller and nearly all other DirectInput/XInput controllers
     
  • Use per-rom or per-emulator controller configurations that are automatically remembered between gaming sessions (without having to create convoluted Steam shortcuts for every rom)
     
  • Bypass or improve upon many emulators' extremely limited controller bindings and hotkey options
     
  • Share your "currently playing" status with Steam friends for whatever rom you launched from LaunchBox/BigBox. Example: “YourSteamAlias is currently playing 'Super Metroid (SNES)')”

Requirements

  • .NET Framework 4.6.1+
     
  • Steam for Windows
     
  • LaunchBox

Installation

  • Extract the 'SteamLauncher' directory from the compressed package into your LaunchBox plugins directory
  • Right click the SteamLauncher.dll file, click 'Properties', and look at the bottom of the dialog (on the 'General' tab) for a checkbox labeled 'Unblock'; if you see it, check that checkbox and click 'OK'; if you don't see it, then you are done

Screenshot (33).png

Example: If LaunchBox is located at 'C:\LaunchBox', you would copy the 'SteamLauncher' directory to 'C:\LaunchBox\Plugins'. This would result in 'SteamLauncher.dll' and any additional files (if any) being inside the directory 'C:\LaunchBox\Plugins\SteamLauncher'.

It would be greatly appreciated if you would leave a comment/review on this page with a bit of feedback after installing the plugin and trying it out. Even just a short comment such as, "It works for me" or "Not working" would help out a lot. The plugin was tested on a very limited number of setups and environments prior to release, so any small amount of feedback will help in gauging whether the plugin generally works for most people or whether more testing is needed.

How to Use

Simply bring up the rom's context menu in LaunchBox (in BigBox or normal mode) and click the option at the bottom of the menu labeled "Launch via Steam"

Note: Currently SteamLauncher will only launch the rom using its default emulator. If you wish to use a different emulator with that particular rom, you will have to go into that rom's settings and change its default emulator (or change the default emulator for the entire platform associated with that rom.)

Customize Platform Names

When roms are launched with the plugin, the title of the game, as Steam sees it, will be in the format of: "Game Title (Platform Name)"

        Example: Super Mario Bros. (Nintendo Entertainment System)

For whatever reason, you may want to keep the long "official" name of the platform in LaunchBox, but use a shortened, abbreviated, or different platform name inside of Steam. The plugin has this functionality available, and it can be enabled by following these instructions:

  • Open the SteamLauncher directory and look for a file named 'config.xml'
     
  • If you do not see the file, you need to launch at least 1 game with the plugin, and then manually close LaunchBox, and the file should then appear in the directory
     
  • Open the file with a text editor, and look for the line labeled, '<CustomPlatformNames>'
     
  • Anywhere under this line, and before the line labeled, '</CustomPlatformNames>', you can add as many new lines as desired in the format of:

                <Platform Name="Original LaunchBox Platform Name" Custom="Custom Platform Name" />

  • You may already see a couple of example lines in place with fake platform names which you can copy/paste and modify to add your own custom platform names
     
  • After making your changes, simply save the file, close it, and then reopen LaunchBox
     
  • The next time you launch a game, you should see your new custom platform name substituting the real platform name in Steam (an easy place to see the title of the game you're playing is in the Steam overlay)
     
  • Just to reiterate, here is an example of what the aforementioned lines look like in my config file:

                <CustomPlatformNames>

                    <Platform Name="Super Nintendo Entertainment System" Custom="SNES" />

                    <Platform Name="Nintendo Entertainment System" Custom="NES" />

                    <Platform Name="Nintendo Game Boy Advance" Custom="Nintendo GBA" />

                    <Platform Name="Nintendo Game Boy Color" Custom="Nintendo GBC" />

                </CustomPlatformNames>

Known Issues

There appears to be a significant bug in the Steam Client right now that can cause problems with controller bindings under a variety of situations for certain users. If you launch a rom/emulator with LaunchBox and your controller bindings don't seem to be working, simply exit the game and launch it again. This may happen the very first time you try to launch a game using the SteamLauncher plugin (one time total after freshly installing the plugin, not on every new session in LaunchBox). If it happens frequently, please report the problem so further workarounds can be investigated.

Support

Unfortunately I don't run a dedicated call center to provide technical support... However, if you need help with any technical issues or bugs (see 'Debug Logs'), want to suggest a new feature (I am very open to any ideas), just want to chat, or anything else related to the plugin, feel free to send me a PM or shoot me an email at the address listed below.

Contact Information

Alias: Lahma

Email: lahma0@gmail.com

GitHub Project URL:

        https://github.com/lahma69/SteamLauncher

LaunchBox Community Forums Profile:

        https://forums.launchbox-app.com/profile/89710-lahma/

Debug Logs

To provide help with any technical problems or to investigate a bug, I will need a copy of the debug log that is generated whenever debug logs are enabled in the configuration file. To enable debug logs follow these instructions:

  • Locate the file named 'config.xml' in the SteamLauncher directory and open it with a text editor
     
  • Find the line that looks like this: <DebugLogEnabled>false</DebugLogEnabled>
     
  • Change the word 'false' to 'true' (do not include the quotation marks)
     
  • Save the file and close it
     
  • Now simply repeat whatever behavior was causing the issue and/or bug, and after you're sure you've replicated the behavior, manually close LaunchBox
     
  • Again, look inside the SteamLauncher directory, but this time looks for a file named 'debug.log' (there may be more than one sequentially named log files if there was an enormous amount of output, but this is unlikely if debugging was turned on just briefly)
     
  • Zip up the one or more log files and attach them to your message, along with the details of your particular setup (Windows version, 32-bit or 64-bit, LaunchBox version, Steam version, SteamLauncher plugin version, etc). The more information the better.

Source Code

The source code will be posted on my GitHub very shortly (next day or so). Once uploaded, it will be available at the following URL:

        https://github.com/lahma69/SteamLauncher

Legal Stuff

©2017 Valve Corporation. Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.


 

Share this post


Link to post
Share on other sites

Just downloaded the plugin, ill test it in a minute. You may want to add to the install description on the download page that you will most likely need to unblock the .dll file also, at least I had to on my system as Windows automatically blocks .dll's coming from other computers.

Screenshot (33).png

  • Thanks 1

Share this post


Link to post
Share on other sites

Unfortunately it doesn't work with RocketLauncher, RL throws an error that the default emulator is not set, even though it is.

Share this post


Link to post
Share on other sites

RL launches steam games natively though.  You can either treat it as a PC game with the pc module and find the exe in the folders, or use the checkbox plus steam id field in the module options.  

Share this post


Link to post
Share on other sites

For some reason I've not yet discovered RL's launch structure seems to block the overlay.  I've not determined if it's due to the overlay hooking the wrong level or process hierarchy because I've not had a chance to dig into it.

Share this post


Link to post
Share on other sites

What overlay?  Most steam games are widescreen full screen? What would you need an overlay for? RL can just launch it. 

Share this post


Link to post
Share on other sites
Just now, damageinc86 said:

What overlay?  Most steam games are widescreen full screen? What would you need an overlay for? RL can just launch it. 

The entire point of launching through Steam is to access its overlay, especially if you use a Steam Controller.

Share this post


Link to post
Share on other sites

Ohhh lol. Oops. I've never used steams overlay. Is that the message that flashes real quick that says to access it press such and such a key combo during gameplay?

Share this post


Link to post
Share on other sites
1 minute ago, damageinc86 said:

Ohhh lol. Oops. I've never used steams overlay. Is that the message that flashes real quick that says to access it press such and such a key combo during gameplay?

Yes.  It gives access to chat and a web browser (of admittedly dubious quality) as well as, if you are using Big Picture or a Steam Controller, controller configuration.

Share this post


Link to post
Share on other sites

I wonder if there's any setting in the module that account for that.  There's a lot Hidden in the module setting sometimes.

Share this post


Link to post
Share on other sites
2 hours ago, damageinc86 said:

RL launches steam games natively though.  You can either treat it as a PC game with the pc module and find the exe in the folders, or use the checkbox plus steam id field in the module options.  

That's not what this plugin is for, nor is it what I'm talking about. This plugin is to launch your roms via Steam, to gain steam's big picture features while playing your roms. This plugin is not for launching Steam games.

1 hour ago, Musungo said:

@Omen Steam's configurator doesn't work with rocket launcher anyway, at least in my experience. 

What do you mean, the controller configurator? That sucks :( I still would have liked to use it for the ability to show what I'm playing on Steam.

Share this post


Link to post
Share on other sites

Yes it blocks the steam overlay that enables controller configs @Omen I'm unsure as of yet if theirs any way to get it to work anyhow.

Share this post


Link to post
Share on other sites

I'm sure the blocking is an accident of how some part of RL works with its bezel and other display logic.  IDK if I can solve it but I've been too busy to do a lot lately (hence why my own Steam Proxy has fallen into disrepair).

Edited by Nielk1

Share this post


Link to post
Share on other sites

Been trying to use this plugin but it keeps crashing BigBox and steam, Big box'll hang like it's trying to launch / work with Steam then nothing I have to force close big box. 

Share this post


Link to post
Share on other sites

i can use the plugin in default? i mean no use the label just click the game and launch in steam

Share this post


Link to post
Share on other sites

Thanks bud, was working perfectly for me until I just updated to 8.1....now keep getting error messages and want to go back to 8.0 just because of this app. Thanks again for the work!

 

Heres the message I get

Spoiler

 

Object reference not set to an instance of an object.

App:     Big Box
Version: 8.1
Type:    System.NullReferenceException
Site:    Boolean MoveNext()
Source:  SteamLauncher

   at SteamLauncher.SteamClient.SteamShortcut.<GetSteamLauncherShortcuts>d__36.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at SteamLauncher.SteamClient.SteamShortcut.RecycleShortcut()
   at SteamLauncher.SteamClient.SteamShortcut.GetNewOrExistingShortcut(Boolean& isNew)
   at SteamLauncher.SteamClient.SteamShortcut.LaunchShortcut()
   at SteamLauncher.LaunchViaSteamMenuItem.OnSelected(IGame selectedGame)
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.<>c__DisplayClass149_3.<SelectionChangedTimerElapsed>b__26()
   at Unbroken.LaunchBox.Wpf.BigBox.MenuActions.MethodMenuAction.OnEnter()
   at (GamesViewModelBase )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.OnEnter()
   at (MainViewModel )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.OnEnter()
   at (MainViewModel , KeyEventArgs )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.HandleKeyDown(KeyEventArgs e)
   at (MainView , Object , KeyEventArgs )
   at Unbroken.LaunchBox.Wpf.BigBox.Views.MainView.MainView_OnPreviewKeyDown(Object sender, KeyEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawKeyboardActions actions, Int32 scanCode, Boolean isExtendedKey, Boolean isSystemKey, Int32 virtualKey)
   at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
   at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
   at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Recent Log:

   6:16:30 PM Music.Pause Start
   6:16:30 PM Music.Resume Start
   6:16:30 PM Music.Resume Start
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:34 PM Music.StopAndResumeBackground Start
   6:16:35 PM Music.Initialize Start
   6:16:35 PM Music.Kill Start
   6:16:35 PM Music.Kill Finished
   6:16:36 PM Music.StopAndResumeBackground Start
   6:16:36 PM Music.StopAndResumeBackground Start
   6:16:38 PM Music.StopAndResumeBackground Start
   6:16:38 PM Music.StopAndResumeBackground Start
   6:16:39 PM Music.StopAndResumeBackground Start
   6:16:39 PM Music.StopAndResumeBackground Start
   6:16:40 PM Music.StopAndResumeBackground Start
   6:16:40 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:45 PM Music.StopAndResumeBackground Start
   6:16:45 PM Music.StopAndResumeBackground Start
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:48 PM Exception

 

 

Share this post


Link to post
Share on other sites

Wow, so I'm a total moron... I didn't even know there was a separate forum thread associated with the plugin download page (which I thought was really strange actually). I've had my own plugin bookmarked at https://forums.launchbox-app.com/files/file/972-steamlauncher/ instead of this URL, so I didn't even realize this thread existed lol. So sorry everyone. 

 

Share this post


Link to post
Share on other sites
On 2/11/2018 at 1:01 PM, neil9000 said:

Just downloaded the plugin, ill test it in a minute. You may want to add to the install description on the download page that you will most likely need to unblock the .dll file also, at least I had to on my system as Windows automatically blocks .dll's coming from other computers.

Screenshot (33).png

Neil, I totally forgot about that, and I wish I would have seen your post earlier (see my previous post for why I did not). I will definitely add this info at the top of the plugin page. Thanks for the heads up.

Share this post


Link to post
Share on other sites
8 hours ago, percybuttkins said:

Thanks bud, was working perfectly for me until I just updated to 8.1....now keep getting error messages and want to go back to 8.0 just because of this app. Thanks again for the work!

 

Heres the message I get

  Hide contents

 

Object reference not set to an instance of an object.

App:     Big Box
Version: 8.1
Type:    System.NullReferenceException
Site:    Boolean MoveNext()
Source:  SteamLauncher

   at SteamLauncher.SteamClient.SteamShortcut.<GetSteamLauncherShortcuts>d__36.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at SteamLauncher.SteamClient.SteamShortcut.RecycleShortcut()
   at SteamLauncher.SteamClient.SteamShortcut.GetNewOrExistingShortcut(Boolean& isNew)
   at SteamLauncher.SteamClient.SteamShortcut.LaunchShortcut()
   at SteamLauncher.LaunchViaSteamMenuItem.OnSelected(IGame selectedGame)
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.<>c__DisplayClass149_3.<SelectionChangedTimerElapsed>b__26()
   at Unbroken.LaunchBox.Wpf.BigBox.MenuActions.MethodMenuAction.OnEnter()
   at (GamesViewModelBase )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.OnEnter()
   at (MainViewModel )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.OnEnter()
   at (MainViewModel , KeyEventArgs )
   at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.HandleKeyDown(KeyEventArgs e)
   at (MainView , Object , KeyEventArgs )
   at Unbroken.LaunchBox.Wpf.BigBox.Views.MainView.MainView_OnPreviewKeyDown(Object sender, KeyEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawKeyboardActions actions, Int32 scanCode, Boolean isExtendedKey, Boolean isSystemKey, Int32 virtualKey)
   at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
   at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
   at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Recent Log:

   6:16:30 PM Music.Pause Start
   6:16:30 PM Music.Resume Start
   6:16:30 PM Music.Resume Start
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:34 PM Music.StopAndResumeBackground Start
   6:16:35 PM Music.Initialize Start
   6:16:35 PM Music.Kill Start
   6:16:35 PM Music.Kill Finished
   6:16:36 PM Music.StopAndResumeBackground Start
   6:16:36 PM Music.StopAndResumeBackground Start
   6:16:38 PM Music.StopAndResumeBackground Start
   6:16:38 PM Music.StopAndResumeBackground Start
   6:16:39 PM Music.StopAndResumeBackground Start
   6:16:39 PM Music.StopAndResumeBackground Start
   6:16:40 PM Music.StopAndResumeBackground Start
   6:16:40 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:42 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:44 PM Music.StopAndResumeBackground Start
   6:16:45 PM Music.StopAndResumeBackground Start
   6:16:45 PM Music.StopAndResumeBackground Start
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) Free
   6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
   6:16:48 PM Exception

 

 

Hey Percy, so I'm using LaunchBox 8.1 and I just tested v0.9.0.1 of the plugin with both the non-beta and beta Steam client and both the regular LaunchBox and BigBox are both working fine for me. Did you try "unblocking" the DLL as Neil9000 suggested? If you look at the plugin info page under 'Debug Logs', it describes how you can enable debug logging for the plugin. If you continue to have problems, enable the debug logs and send me a copy of them and I'll take a look to see if I can figure out what's going on. I suspect there is some other problem at play here though if the plugin was working fine before and only stopped working after you updated LaunchBox (cause like I said, I'm running LaunchBox 8.1 as well). 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×