lifning / padpyght

An open-source gamepad visualizer in Python
GNU General Public License v3.0
40 stars 10 forks source link

Crash upon using PS3 skin #1

Closed tseruga closed 10 years ago

tseruga commented 10 years ago

Using a Dualshock4 to XInput mapper causes the PS3 controller skin to crash. Selecting any other skin works fine.

Crash Report:

C:\Users\Tyler\Desktop\pad>python padpyght.py SDL_JoystickGetAxis value:0: SDL_JoystickGetAxis value:0: Traceback (most recent call last): File "padpyght.py", line 257, in app.run(box) File "c:\Python27\lib\site-packages\pgu\gui\app.py", line 245, in run self.loop() File "c:\Python27\lib\site-packages\pgu\gui\app.py", line 185, in loop self.event(e) File "c:\Python27\lib\site-packages\pgu\gui\app.py", line 176, in event container.Container.event(self,sub) File "c:\Python27\lib\site-packages\pgu\gui\container.py", line 233, in event used = w._event(sub) File "c:\Python27\lib\site-packages\pgu\gui\widget.py", line 326, in _event return self.event(e) File "c:\Python27\lib\site-packages\pgu\gui\theme.py", line 357, in theme_even t return func(sub) File "c:\Python27\lib\site-packages\pgu\gui\container.py", line 233, in event used = w._event(sub) File "c:\Python27\lib\site-packages\pgu\gui\widget.py", line 325, in _event self.send(e.type,e) File "c:\Python27\lib\site-packages\pgu\gui\widget.py", line 321, in send func(*args) File "padpyght.py", line 252, in main_wrapper main(skin_list.value, joy_list.value) File "padpyght.py", line 153, in main btn_listeners[int(tmpobj.button)-1].add(tmpobj) IndexError: list index out of range

lifning commented 10 years ago

Hi tseruga,

The default configuration for the "playstation" skin is mapped to the Logitech RumblePad 2 button layout. The cause of the crash was the program trying to map a 12th gamepad button, which XInput gamepads don't have.

I've added error handling to the program such that it will print a warning instead of crashing, but this won't solve your problem completely, since the buttons would be mismatched. Instead, you'll probably want to replace "skin.ini" in the "playstation" folder with "skin-xinput.ini", which should have the proper mappings for XInput pads on Windows (let me know if it doesn't on your machine - I don't have a DS4 to test with)

Thanks for the report :)

lifning commented 10 years ago

I think I can close this now. Feel free to re-open if it's still not working!