SpaceMouse Pro for Game Shipbreaker

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
Cookiemonster
Posts: 3
Joined: Sun Apr 14, 2024 2:55 pm

SpaceMouse Pro for Game Shipbreaker

Post by Cookiemonster »

Hey!
I read some threads and posts but still lost in matter of getting my SpaceMouse Pro working with the game Shipbreaker.
I tried ControllMyJoystick but also without success.
I feel like an idiot because I spend already a lot of time to get it work. :-(
Any help is welcome!
BR
Jan
jwick
Moderator
Moderator
Posts: 3342
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMouse Pro for Game Shipbreaker

Post by jwick »

Not knowing anything about Shipbreaker, I can only ask some generic questions.

The SpaceMouse can be put into several output modes (3D mouse, Raw Input, DirectInput, Joystick, Keyboard, Mouse, custom). The appropriate one would be determined by the game.

E.g., if the game is quite modern, it might read the 3D mouse through one of the Microsoft APIs (RawInput, DirectInput). Admittedly, it is unusual that this is done correctly. Games tend to only work well with the devices that are sitting on the game developer's desk.

Often flight-type games read joysticks. That at least gives you analog input, with many values on each axis.

It is not unusual for games, especially internet-based games, to only support keyboard & mouse input. This might work but won't be great, IMO.

Some research will be required on your part to determine which type of input the game supports. If there is a forum for the game, I'd start there. But you may also see what options are available in the game's control panel.

Once you have more information, I can help you create a cfg for the game.
Cookiemonster
Posts: 3
Joined: Sun Apr 14, 2024 2:55 pm

Re: SpaceMouse Pro for Game Shipbreaker

Post by Cookiemonster »

Hello, thank you for your reply.
In the game, you control an astronaut who moves freely in space. Therefore, the Space Mouse would be perfect for control. Targeting and selecting actions are done with the mouse, and the astronaut's controls can be handled via the WASD keyboard or a gamepad. This means that analog gamepad support is available. I have disabled my Xbox controller via Device Manager, but unfortunately, it does not recognize the Space Mouse when I am in-game, and the in-game bindings do not respond to the Space Mouse either. I have also tested ControlMyJoystick, but unfortunately, even the joystick emulator from this tool is not recognized in the game.
jwick
Moderator
Moderator
Posts: 3342
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMouse Pro for Game Shipbreaker

Post by jwick »

If the game doesn't find the ControlMyJoystick emulator, there's a good chance it is not going to find our emulated Joystick.

I suggest you try WASD emulation while searching for a better solution.

To do that, you need a valid cfg file for the game. The easiest way to get that is to start the game, then press the RollLock key on your SpaceMouse Pro. This should write a cfg file for your game in %appdata%\3Dconnexion\3DxWare\Cfg. It will hopefully be named something like Shipbreaker.xml.

Once you have that, you can change the contents to send WASD keys. It will require some work in notepad++, or your favorite editor.

Replace the <Devices> section with this (from C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\KeyboardWASDTemplate.xml):

Code: Select all

  <Devices>
    <Device>
      <ID>ID_Standard_3D_Mouse</ID>
      <Name>Standard 3D Mouse</Name>
      <AxisFilter>None</AxisFilter>
      <CurrentAxisBank>Default</CurrentAxisBank>
       
      <AxisBank Default="true">
        <ID>Default</ID>
        <Name>STR_DEFAULT_BANK</Name>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_X</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>08</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_X</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>14</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Y</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>16</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Y</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>1A</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Z</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>1B</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Z</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>2C</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>false</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rx</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
            <Deadband>0</Deadband>
          </Input>
          <Output>
            <ActionID>HIDMultiAxis_Rx</ActionID>
          </Output>
        </Axis>
        <Axis>
          <Enabled>false</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Ry</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
            <Deadband>0</Deadband>
          </Input>
          <Output>
            <ActionID>HIDMultiAxis_Ry</ActionID>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rz</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>07</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rz</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>200</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>04</Key>
            </KeyStroke>
          </Output>
        </Axis>
      </AxisBank>
      <ButtonBank Default="true">
        <ID>Default</ID>
        <Name>STR_DEFAULT_BUTTONBANK</Name>
        <InheritsFromID/>
        <Button>
          <Input>
            <ActionID>V3DK_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
  </Devices>
  
Cookiemonster
Posts: 3
Joined: Sun Apr 14, 2024 2:55 pm

Re: SpaceMouse Pro for Game Shipbreaker

Post by Cookiemonster »

Thank you,
I will try it later this evening.
I have a question so far: Isn't it strange that the game is not recognizing the emulator from ControlMyJoystick, even though it natively supports the standard Xbox controller, which is a very common driver/controller? In other words, I feel like I'm doing something fundamentally wrong... :?
Best Regards, Jan
jwick
Moderator
Moderator
Posts: 3342
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMouse Pro for Game Shipbreaker

Post by jwick »

See comment about "developer's desks".
There is a difference between a gamepad and a joystick.
It's not easy to correctly support all sorts of devices. I've yet to see any game do it.

There is another recent thread about using autohotkey. This is another option for you. It looks like a very capable product.
Post Reply