Gamepad profile for gamepad "Firestorm Dual Analog 3"
Okay, as promised, here is my generalized profile for the gamepad "Firestorm Dual Analog 3" by ThrustMaster, Inc.
It is to be included in joystick_presets.ini
First some technical notes about the gamepad:
Finally, let's get to the profiles. To install the profiles, just put the text into the file "joystick_presets.ini".
Just pick one of those:
If you like to count from 0:
If you like to count from 1:
Please note:
It is to be included in joystick_presets.ini
First some technical notes about the gamepad:
- It has 12 buttons plus a "mode" button. None of them is labelled.
- Is is an USB gamepad.
- The device's USB ID is 044F:B315. I have reported it to The USB ID repository (pretty awesome project btw) and it is currently under review.
- The detect string for my gamepad is "Mega World Thrustmaster dual analog 3.2" (a bit confusing, as it is sold as "Firestorm Dual Analog 3"; I do not know what this "Mega World" thing means)
- I start counting the buttons from 0.
- The raw button numbers and axis numbers are taken from the program jstest, an useful tool to test your joystick. It is part of the inpututils package. It reports you when you press which button and when which axis is how strongly pushed. It is very similar to the diagnostics mode in Bitfigher, but it is a standalone program for the console. It is a bit hard to obtain nowadays, the only copy I found is in the Arch User Repository here: https://aur.archlinux.org/packages/inpututils-cvs/. You can only use this package if you're an Arch Linux user or are at least are familar with Arch Linux's packaging system, sorry. If you know another program for joystick testing, please let me know.
- Buttons 0-3 are "action buttons". They are black and round.
They are located on the right part of the front side and are ordered this way: - Buttons 4,5,8 are shoulder buttons on the left side. 4 is the upper one, 5 the middle one, 8 the lower one. They are blue.
- Buttons 6,7,9 are shoulder buttons on the right side. 6 is the upper one, 7 the middle one and 9 the lower one. They are blue.
- Button 10 is the left stick and button 11 is the right stick. The sticks can be pressed and act as buttons, too. They are blue.
- Besides two analog sticks there is also one D-Pad. There is also a "mode" button which can't be used for gameplay directg. It toggles the meaing of the D-Pad. There is also a LED to show you which mode the gamepad is using.
- Left stick: horizontal axis is axis 0. vertical axis is axis 1,
- Right stick: horizontal axis is axis 2, vertical axis is axis 3.
- D-Pad: It uses two axes which report either extreme thereshold (if you press the pad) or 0 (if you don't), never something in between. I think this is a common practise for D-Pads in gamepads. Now this is special: The axis numbers which are reporterd to the PC depends if you activated the mode button or not. If you did, the D-Pad uses axis 4 as horizontal axis and axis 5 as vertical axis. If you did not press the mode button, the D-Pad uses axis number 0 as horizontal axis and axis number 1 as vertical axis. Yup, in this mode, the D-Pad shares the button IDs with the left stick.
Finally, let's get to the profiles. To install the profiles, just put the text into the file "joystick_presets.ini".
Just pick one of those:
If you like to count from 0:
- Code:
- [FirestormDualAnalog3]
; Firestorm Dual Analog 3 by ThrustMaster, Inc.
Name=Firestorm Dual Analog 3
SearchString=Thrustmaster dual analog 3
SearchStringIsSubString=Yes
MoveAxisLeftRight=0
MoveAxisUpDown=1
ShootAxisLeftRight=2
ShootAxisUpDown=3
; actually, raw buttons 0-3 are black, not white
; actually, raw buttons 4-11 are blue, not white
; actually, the buttons are not labelled at all. The numbers are just a means of identification
Button1=Raw:0;Label:0;color:White;Shape:Round
Button2=Raw:1;Label:1;color:White;Shape:Round
Button3=Raw:2;Label:2;color:White;Shape:Round
Button4=Raw:3;Label:3;color:White;Shape:Round
Button5=Raw:4;Label:4;color:White;Shape:RoundedRect
Button6=Raw:5;Label:5;color:White;Shape:RoundedRect
Button7=Raw:6;Label:6;color:White;Shape:RoundedRect
Button8=Raw:7;Label:7;color:White;Shape:RoundedRect
ButtonBack=Raw:8;Label:8;Color:White;Shape:RoundedRect
ButtonStart=Raw:9;Label:9;Color:White;Shape:RoundedRect
Button9=Raw:10;Label:10;color:White;Shape:Round
Button10=Raw:11;Label:11;color:White;Shape:Round
Button11=
Button12=
ButtonDPadUp=
ButtonDPadDown=
ButtonDPagLeft=
ButtonDPadRight=
If you like to count from 1:
- Code:
- [FirestormDualAnalog3]
; Firestorm Dual Analog 3 by ThrustMaster, Inc.
Name=Firestorm Dual Analog 3
SearchString=Thrustmaster dual analog 3
SearchStringIsSubString=Yes
MoveAxisLeftRight=0
MoveAxisUpDown=1
ShootAxisLeftRight=2
ShootAxisUpDown=3
; actually, buttons 0-3 are black, not white
; actually, buttons 4-11 are blue, not white
; actually, the buttons are not labelled at all. The numbers are just a means of identification
Button1=Raw:0;Label:1;color:White;Shape:Round
Button2=Raw:1;Label:2;color:White;Shape:Round
Button3=Raw:2;Label:3;color:White;Shape:Round
Button4=Raw:3;Label:4;color:White;Shape:Round
Button5=Raw:4;Label:5;color:White;Shape:RoundedRect
Button6=Raw:5;Label:6;color:White;Shape:RoundedRect
Button7=Raw:6;Label:7;color:White;Shape:RoundedRect
Button8=Raw:7;Label:8;color:White;Shape:RoundedRect
ButtonBack=Raw:8;Label:9;Color:White;Shape:RoundedRect
ButtonStart=Raw:9;Label:10;Color:White;Shape:RoundedRect
Button9=Raw:10;Label:11;color:White;Shape:Round
Button10=Raw:11;Label:12;color:White;Shape:Round
Button11=
Button12=
ButtonDPadUp=
ButtonDPadDown=
ButtonDPagLeft=
ButtonDPadRight=
Please note:
- The left lower shoulder button acts as Back button and the right lower shoulder button acts as start button. All other buttons have been mindlessly numbered from start to end. This default configuration may not be suitable for everyone and will most likely have to be edited. But as the important buttons, start and back, have sane (I think so) mappings, I don't see this as a problem. The remaining buttons can easily be re-mapped through the configuration menu and the player most likely not need to edit the file directly, well except he want to change the mappings for back and start, of course!
- Also note that the profiles have been designed under the assumption that the mode LED is on, meaning the d-pad uses his own axis IDs. But in practise, it is almost irrelevant, you can navigate the menus with either axis, no matter if d-pad, left stick or right stick . The only real difference is that you can control the ship with the D-Pad, too if the mode LED is off, but that's just silly.
- I used a detection substring instead of the full string. I bet there are similar, but not identical names for a product which is always sold under the same name. I wouldn't trust the autodetection to reliable detect such a gamepad always. Probably this means we should use another detection method for gamepads which is more reliable, for example the device's USB ID.
- The analog sticks' axes are specified explicitly, but the D-Pad axes are not specified explicitly (is this even possible). But due to some kind of magic the diagnostics screen detects the D-Pad correctly (if mode LED is on, of course!)
- A circle represents either a stick or one of the 4 action buttons.
- A rounded rectangle represents one of the shoulder buttons.
- For readability, I always picked the color white for all buttons. Dark blue and black on a black background are quite silly, I think.
- Also note this is a highly general configuration and should be therefore suitable to be included in the game. I use a pretty customized configuration for this gamepad, but I won't suggest to include it into the game, as it fits MY needs, but not neccessarily the needs of someone else. MAYBE I'll post my personal config, too, in case anyone is interested.