Page MenuHomeSchine - Phabricator

Starmade | Joystick and Gamepad support broken
Closed, FinishedPublic

Description

If you try to set up a joystick (I use a Sidewinder force feedback Pro) the function to assign a joystick control is accepting the analogue value from the stick and trying to define it as button control. The stack trace indicates there is a type mismatch error causing the crash which closes the application completely.

The "hat" stick on top of the joystick is also is not seen. which is a shame as it would be really useful for strafing. At the moment I have to use the keyboard for strafing whilst using the joystick, if the "hat" was seen I could have the joystick in one hand and mouse in the other and fight pirates.
note: The hat is seen as 2 axis with a range of -1 to 1 centring on 0 not as buttons.


https://youtu.be/X7CrBtDHD-w


changed behaviour in current builds

support completly broken

Details

Task Type
Bug
Testing Results
Affected Gamemode(s)
Single and Multi
Reproducible
Yes
Last tested (version)
0.199.159
Category
Engine
Hardware/Software/System
OS-Specific
No
Hardware-Specific
Joystick
Video Card Vendor
uncertain
User/Reporter/Contact
Username on Registry
morlanius
Steps to reproduce
  1. start Starmade with gamepad or joystick connected
  2. on main menu open the controls -> joystick/pad

3a. either no input device is available or
3b. the choosen one (xbox360 controller in my case) causes an error while testing through input functions

Tester information (Internal use only)
[2016-06-23 15:45:28] java.lang.NullPointerException
[2016-06-23 15:45:28] 	at org.lwjgl.input.Controllers.isEventButton(Controllers.java:214)
[2016-06-23 15:45:28] 	at org.schema.schine.input.KeyboardMappings.a(SourceFile:267)
[2016-06-23 15:45:28] 	at obfuscated.P.k(SourceFile:276)
[2016-06-23 15:45:28] 	at obfuscated.aEq.a(SourceFile:103)
[2016-06-23 15:45:28] 	at obfuscated.P.a(SourceFile:167)
[2016-06-23 15:45:28] 	at obfuscated.MY.a(SourceFile:149)
[2016-06-23 15:45:28] 	at obfuscated.avr.b(SourceFile:613)
[2016-06-23 15:45:28] 	at obfuscated.P.e(SourceFile:902)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.startMainMenu(SourceFile:1148)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.main(SourceFile:941)
[2016-06-23 15:45:28] [GLFRAME] THROWN: class java.lang.NullPointerException Now Printing StackTrace
[2016-06-23 15:45:28] java.lang.NullPointerException
[2016-06-23 15:45:28] 	at org.lwjgl.input.Controllers.isEventButton(Controllers.java:214)
[2016-06-23 15:45:28] 	at org.schema.schine.input.KeyboardMappings.a(SourceFile:267)
[2016-06-23 15:45:28] 	at obfuscated.P.k(SourceFile:276)
[2016-06-23 15:45:28] 	at obfuscated.aEq.a(SourceFile:103)
[2016-06-23 15:45:28] 	at obfuscated.P.a(SourceFile:167)
[2016-06-23 15:45:28] 	at obfuscated.MY.a(SourceFile:149)
[2016-06-23 15:45:28] 	at obfuscated.avr.b(SourceFile:613)
[2016-06-23 15:45:28] 	at obfuscated.P.e(SourceFile:902)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.startMainMenu(SourceFile:1148)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.main(SourceFile:941)
Serverconfig (server.cfg)
<replace this line with the file content>
Clientconfig (settings.cfg)
C_USE_NEW_PLAYER_MODEL_ = true
CONTROL_HELP = false
C_MOUSE_BUTTOM_SWITCH = false
G_RESOLUTION = 1280 x 800
G_FULLSCREEN = false
G_VSYNCH = false
G_FOV = 85.0
G_MAX_SEGEMENTSDRAWN = 1300
G_DRAW_SURROUNDING_GALAXIES_IN_MAP = false
HIT_INDICATION_NUMBERS_LIFETIME = 0.4
D_LIFETIME_NORM = 30
G_WINDOWED_BORDERLESS = false
S_SOUND_SYSTEM_ENABLED = true
S_SOUND_ENABLED = true
S_SOUND_VOLUME_GLOBAL = 7
N_TRANSMIT_RAW_DEBUG_POSITIONS = false
C_SELECTED_JOYSTICK = 0
ICON_BAKERY_BLOCKSTYLE_ROTATE_DEG = -90.0
MOUSE_WHEEL_SENSIBILITY = 7.0E-4
BUILD_MODE_SHIFT_SPEED = 25.0
ORBITAL_CAM_SPEED = 0.5
G_DAMAGE_DISPLAY = 600
G_STAR_COUNT = 2048
G_VBO_BULKMODE_SIZE = 4
G_DRAW_FOG = false
G_DRAW_BEAMS = true
G_DRAW_EXHAUST_PLUMS = true
D_INFO_CONTROLMANAGER = false
D_INFO_SHADER = true
T_ENABLE_TEXTURE_BAKER = false
D_INFO_DRAW_TIMES = false
D_INFO_DRAW_SPACE_PARTICLE = false
G_SPACE_PARTICLE = true
G_DRAW_MOUSE_COLLISION = false
G_ATMOSPHERE_SHADER = normal
G_SHADOW_QUALITY = SIMPLE
G_DRAW_SHIELDS = true
G_DRAW_WATER = true
G_DRAW_BACKGOUND = true
G_WATER_USER_MIPMAPS = false
E_NAVIGATION_FILTER = 877
G_DRAW_ENTITIES = true
G_FRUSTUM_CULLTING = true
G_DRAW_EFFECTS = true
G_SHADER_RELOAD = false
G_FRAMRATE_FIXED = -1
G_SHADERS_ACTIVE = true
G_DEBUG_DRAW_GRID = false
G_DEBUG_DRAW_LINES = true
F_FRAME_BUFFER_USE = false
T_TERRAIN_DRAW = true
T_TERRAIN_WIREFRAME_DRAW = false
G_CULLING_ACTIVE = true
G_TEXTURE_ARRAYS = false
G_AUTO_NORMALIZATION = true
G_DRAW_BY_SIDES = true
G_WIREFRAMED = false
G_NORMAL_MAPPING = false
G_TEXTURE_COMPRESSION_BLOCKS = false
G_TEXTURE_ARRAY_COMPRESSION = true
G_TEXTURE_ARRAY_MIPMAP = true
G_TEXTURE_MIPMAP = true
G_SHADOWS = false
G_SHADOWS_VSM = false
S_PAUSED = false
S_SETTINGS_SHOW = false
MINIMAP_MODE = SMALL
SECTOR_INDICATION_MODE = INDICATION_ONLY
S_KEY_ALLOW_DUPLICATES = true
G_PROD_BG = true
G_PROD_BG_QUALITY = 1024
G_TEXTURE_PACK = Default
GIF_WIDTH = 640
GIF_HEIGHT = 640
GIF_FPS = 15
GIF_GUI = false
G_DEBRIS_THRESHOLD_MS = 4
G_TEXTURE_PACK_RESOLUTION = 64
S_INITIAL_SETTING = Multi Player
S_GAME_MODE = Sandbox
G_BONE_ANIMATION = true
P_NT_DEBUG_ACTIVE = false
P_PHYSICS_DEBUG_ACTIVE_OCCLUSION = false
P_PHYSICS_DEBUG_ACTIVE = false
P_PHYSICS_DEBUG_MODE = 0
G_DEUBG_LINE_DRAWING_ACTIVATED = false
G_WINDOW_START_POSITION = center
G_DRAW_GUI_ACTIVE = true
G_DRAW_NO_OVERLAYS = false
G_PARTICLE_SORTING = true
P_PHYSICS_ACTIVATED = true
G_SMOKE_QUALITY = false
G_DRAW_STARS = false
G_DRAW_PASTE_PREVIEW = true
G_USE_SPRITE_VBO = true
S_TUTORIAL = false
G_AUTOSELECT_CONTROLLERS = true
S_INFO_DRAW = FPS_AND_PING
G_VBO_FLAG = STATIC
N_LAG_COMPENSATION = true
N_IGNORE_SAVED_UPLINK_CREDENTIALS_IN_SINGLEPLAYER = true
N_SERVER_TIME_UPDATE_FREQUENCE = 2000
M_TEXTURE_PACK_CONFIG_TOOL = ./data/textures/block/Default/64/
G_MULTI_SAMPLE = 0
G_MIPMAP_LEVEL_MAX = 3
M_MOUSE_SENSITIVITY = 0.5
G_HIT_INDICATION_SIZE = 1.0
F_BLOOM = false
F_BLOOM_INTENSITY = 0.4
S_MOUSE_LOCK = true
G_DRAW_ADV_BUILDMODE_BLOCK_PREVIEW = true
G_DRAW_ALL_CONNECTIONS = false
G_SHOW_PURE_NUMBERS_FOR_SHIELD_AND_POWER = false
S_FLIP_HOTBAR_MOUSEWHEEL_WITHOUT_CTRL = true
S_ZOOM_MOUSEWHEEL = SLOTS
S_MOUSE_SHIP_INVERT = false
S_MOUSE_ALL_INVERT = false
S_USE_REGION_SIGNATURE_TEST = false
G_PREVIEW_TO_BUILD_BLOCK_TEST = false
S_EXIT_ON_ESC = false
G_USE_HIGH_QUALITY_ACKGROUND = false
G_DRAW_POPUPS = true
G_USE_VBO_MAP = false
G_DRAW_JUMP_OVERLAY = true
G_MAG_FILTER_LINEAR_BLOCKS = false
G_MAG_FILTER_LINEAR_GUI = true
G_MAX_BEAMS = 512
SEGMENT_REQUEST_BATCH = 32
CLIENT_BUFFER_SIZE = 65536
ICON_BAKERY_SINGLE_RESOLUTION = 150
G_RAYTRACE_COUNT = 64
ICON_BAKERY_SINGLE_ICONS = false
G_MUST_CONFIRM_DETACHEMENT_AT_SPEED = 50.0
G_USE_SHADER4 = true
O_OCULUS_RENDERING = false
G_USE_VERTEX_LIGHTING_ONLY = true
CLIENT_TRAFFIC_CLASS = true
G_DRAW_SELECTED_BLOCK_WOBBLE = true
G_USE_TWO_COMPENENT_SHADER = false
A_FORCE_AUTHENTICATION_METHOD = -1
MIN_FFA = 2
B_UNDO_REDO_MAX = 30
N_ARTIFICIAL_DELAY = 0
SEGMENT_PIECE_QUEUE_SINGLEPLAYER = 32767
G_MAX_MISSILE_TRAILS = 128
G_USE_OCCLUSION_CULLING = false
C_AUTOASSIGN_WEAPON_SLOTS = true
G_DRAW_NT_STATS_OVERLAY = false
CLIENT_CUSTOM_TEXTURE_PATH = ./customBlockTextures
SECRET = none
USE_OPEN_AL_SOUND = true
LIMIT_FPS_UNFOCUS = true
GUI_USE_DISPLAY_LISTS = false
USE_GL_MULTI_DRAWARRAYS = false
USE_GL_MULTI_DRAWARRAYS_INITIAL_SET = true
CHAT_CLOSE_ON_ENTER = false
A_FORCE_LOCAL_SAVE_ENABLED_IN_SINGLE_PLAYER = false
G_SHIP_INFO_ZOOM = 0
G_SINGLEPLAYER_CREATIVE_MODE = false
G_DRAW_LAG_OBJECTS_IN_HUD = false
G_SHOW_SYMMETRY_PLANES = true
LANGUAGE_PACK = english
Java Version (64bit)

java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
running on Debian 8

(also use 1.8 issue is not related to Java version

Event Timeline

buggsdabunny updated the task description. (Show Details)Dec 31 2015, 8:43 PM
buggsdabunny set First occurrence (version) to 0.19538.
buggsdabunny changed Hardware-Specific from No to Joystick.
buggsdabunny edited Serverconfig (server.cfg). (Show Details)
buggsdabunny edited Clientconfig (settings.cfg). (Show Details)
buggsdabunny edited Java Version (64bit). (Show Details)
buggsdabunny set Username on Registry to morlanius.
buggsdabunny changed Reproducible from uncertain to Yes.
buggsdabunny set Last tested (version) to 0.19538.
buggsdabunny edited Steps to reproduce. (Show Details)
buggsdabunny added a subscriber: buggsdabunny.
buggsdabunny created this task.
Restricted Application added a project: Issue Navigation. · View Herald TranscriptDec 31 2015, 8:43 PM
buggsdabunny set Task Type to Bug.Dec 31 2015, 8:44 PM
buggsdabunny set Category to none/unspecified.
buggsdabunny set OS-Specific to No.
buggsdabunny set Video Card Vendor to uncertain.
buggsdabunny edited Java Version (64bit). (Show Details)
buggsdabunny set Affected Gamemode(s) to none/unspecified.
buggsdabunny renamed this task from Joystick input causing NPC on button assignment. to Joystick input causing NPE on button assignment..
SmilingDemon shifted this object from the S1 Public space to the S3 Starmade space.Dec 31 2015, 8:53 PM
SmilingDemon changed the visibility from "Custom Policy" to "Public (No Login Required)".
SmilingDemon changed the edit policy from "Task Author" to "Starmade (Project)".
SmilingDemon changed Category from none/unspecified to Engine.
SmilingDemon edited Clientconfig (settings.cfg). (Show Details)
SmilingDemon moved this task from New / Unconfirmed to Open / Validated on the Issue Navigation board.
SmilingDemon renamed this task from Joystick input causing NPE on button assignment. to Joystick input causing nullpointer on button assignment..
SmilingDemon triaged this task as Normal priority.

Please add the logfile containing the nullpointer stacktrace

the collie hat not being used is a known (and reported i think) problem

SmilingDemon added a subscriber: SmilingDemon.
SmilingDemon reassigned this task from SmilingDemon to spunkie.

[2015-12-31 21:11:51] [CLIENT] CLOSING SOCKET
[2015-12-31 21:11:51] [CLIENT] CLOSING SOCKET
[2015-12-31 21:11:51] [CLIENT] SAVING CLIENT CHANNEL Faction10786 Open: false;
[2015-12-31 21:11:51] [CLIENT] SAVING CLIENT CHANNEL all Open: false;
[2015-12-31 21:11:51] java.net.SocketException: Socket closed
[2015-12-31 21:11:51] at java.net.SocketInputStream.socketRead0(Native Method)
[2015-12-31 21:11:51] at java.net.SocketInputStream.read(SocketInputStream.java:152)
[2015-12-31 21:11:51] at java.net.SocketInputStream.read(SocketInputStream.java:122)
[2015-12-31 21:11:51] at java.net.SocketInputStream.read(SocketInputStream.java:210)
[2015-12-31 21:11:51] at java.io.DataInputStream.readInt(DataInputStream.java:387)
[2015-12-31 21:11:51] at org.schema.schine.network.client.ClientProcessor.run(SourceFile:321)
[2015-12-31 21:11:51] at java.lang.Thread.run(Thread.java:745)
[2015-12-31 21:11:51] [ClientProcessor] EXIT: Input Stream closed. Terminating Client Processor
[2015-12-31 21:11:51] [CLIENT] chat channels saved

spunkie updated the task description. (Show Details)Dec 31 2015, 9:49 PM
spunkie changed Affected Gamemode(s) from none/unspecified to Single and Multi.
spunkie changed Last tested (version) from 0.19538 to 0.19538 release.
buggsdabunny added a comment.EditedJan 5 2016, 7:25 PM

https://youtu.be/X7CrBtDHD-w

video showing the crash. video is in unpublished state (at time of writing, still processing)

spunkie added a subscriber: spunkie.Jan 6 2016, 8:07 AM
spunkie removed spunkie as the assignee of this task.
spunkie updated the task description. (Show Details)Jan 7 2016, 12:25 PM
spunkie claimed this task.
spunkie removed spunkie as the assignee of this task.
SmilingDemon updated the task description. (Show Details)Jun 13 2016, 5:54 PM
SmilingDemon edited Steps to reproduce. (Show Details)
SmilingDemon changed Last tested (version) from 0.19538 release to 0.198.148 (DEV).
SmilingDemon removed First occurrence (version).
SmilingDemon renamed this task from Joystick input causing nullpointer on button assignment. to Joystick and Gamepad support broken.
SmilingDemon raised the priority of this task from Normal to High.

-Confirmed-

SmilingDemon changed the task status from Open to In Queue (Game).Jun 13 2016, 5:55 PM
Restricted Application edited projects, added Starmade, Game Development; removed Issue Navigation. · View Herald TranscriptJun 13 2016, 5:55 PM
AndyP added a comment.Jun 28 2016, 9:14 AM

Merging task.

I assume its the same cause/problem.

[2016-06-23 15:45:28] java.lang.NullPointerException
[2016-06-23 15:45:28] 	at org.lwjgl.input.Controllers.isEventButton(Controllers.java:214)
[2016-06-23 15:45:28] 	at org.schema.schine.input.KeyboardMappings.a(SourceFile:267)
[2016-06-23 15:45:28] 	at obfuscated.P.k(SourceFile:276)
[2016-06-23 15:45:28] 	at obfuscated.aEq.a(SourceFile:103)
[2016-06-23 15:45:28] 	at obfuscated.P.a(SourceFile:167)
[2016-06-23 15:45:28] 	at obfuscated.MY.a(SourceFile:149)
[2016-06-23 15:45:28] 	at obfuscated.avr.b(SourceFile:613)
[2016-06-23 15:45:28] 	at obfuscated.P.e(SourceFile:902)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.startMainMenu(SourceFile:1148)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.main(SourceFile:941)
[2016-06-23 15:45:28] [GLFRAME] THROWN: class java.lang.NullPointerException Now Printing StackTrace
[2016-06-23 15:45:28] java.lang.NullPointerException
[2016-06-23 15:45:28] 	at org.lwjgl.input.Controllers.isEventButton(Controllers.java:214)
[2016-06-23 15:45:28] 	at org.schema.schine.input.KeyboardMappings.a(SourceFile:267)
[2016-06-23 15:45:28] 	at obfuscated.P.k(SourceFile:276)
[2016-06-23 15:45:28] 	at obfuscated.aEq.a(SourceFile:103)
[2016-06-23 15:45:28] 	at obfuscated.P.a(SourceFile:167)
[2016-06-23 15:45:28] 	at obfuscated.MY.a(SourceFile:149)
[2016-06-23 15:45:28] 	at obfuscated.avr.b(SourceFile:613)
[2016-06-23 15:45:28] 	at obfuscated.P.e(SourceFile:902)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.startMainMenu(SourceFile:1148)
[2016-06-23 15:45:28] 	at org.schema.game.common.Starter.main(SourceFile:941)

I also concur, my F710 gamepad instantly crashed starmade upon hitting joystick button 1 (thumb stick buttons)

schema changed the task status from In Queue (Game) to Resolved.Aug 14 2016, 12:22 PM
Restricted Application edited projects, added Quality Assurance; removed Game Development. · View Herald TranscriptAug 14 2016, 12:22 PM
SmilingDemon closed this task as Closed.Aug 19 2016, 6:34 PM

-QA Testing-

Controller and Joystick are no longer causing crashes

Cooliehat on stick and pad on controller not working and a few things cant be assigned it looks like.
but that is a different problem

Restricted Application removed a project: Quality Assurance. · View Herald TranscriptAug 19 2016, 6:34 PM
Restricted Application removed a subscriber: AndyP. · View Herald Transcript
SmilingDemon changed Last tested (version) from 0.198.148 (DEV) to 0.199.159.Aug 19 2016, 6:34 PM
Restricted Application added a project: Engine. · View Herald TranscriptMar 10 2017, 6:19 PM