Author Topic: RetroFe crashes if DS4 is connected to the computer  (Read 14909 times)

cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
RetroFe crashes if DS4 is connected to the computer
« on: January 28, 2017, 08:59:26 PM »
Details:

I've tried both USB and Bluetooth, and it crashes with both.
Running latest build, but it has always happened on previous ones too.
If I connect the joystick after RetroFE has launched, it doesn't crash, but the DS4 isn't detected by RetroFE.
log is this: http://pastebin.com/imN3S6FX
I'm running Windows 8, the DS4 is connected with DS4Windows, and the error is the generic retrofe.exe has crashed window, with these details:

Code: [Select]
Problem Event Name: APPCRASH
  Application Name: retrofe.exe
  Application Version: 0.0.0.0
  Application Timestamp: 588c6c29
  Fault Module Name: SDL2.dll
  Fault Module Version: 2.0.4.0
  Fault Module Timestamp: 5771dbfc
  Exception Code: c0000005
  Exception Offset: 00144fa0
  OS Version: 6.2.9200.2.0.0.256.48
  Locale ID: 13322
  Additional Information 1: 5861
  Additional Information 2: 5861822e1919d7c014bbb064c64908b2
  Additional Information 3: dac6
  Additional Information 4: dac6c2650fa14dd558bd9f448e23afd1

And, randomly, it worked just now for the first time ever (and the joystick worked along with the keyboard, woohoo!!), but I didn't do anything different, and it's crashing again, so I don't know what that was about.

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #1 on: January 28, 2017, 09:51:51 PM »
Can you post your controls.conf? Does it also do this with a different controller or just with the DS4?

Sent from my SM-G920F using Tapatalk


cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #2 on: January 29, 2017, 12:55:06 AM »
Oh my god I'm an idiot, I had a repeated line on controls.conf all this time, I probably changed it the moment it "randomly" worked but then put it again when copy&pasting some stuff... thanks once again.

cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #3 on: January 29, 2017, 02:39:50 AM »
Actually, it's back to not working (and this time I'm 100% I didn't change a thing).

Code: [Select]
up = Up, joy0Hat0Up
down = Down, joy0Hat0Down
left = Left, joy0Hat0Left
right = Right, joy0Hat0Right
pageUp = A, joy0Button6
pageDown = S, joy0Button5
letterUp = W, joy0Button8
letterDown = Q, joy0Button9
nextPlaylist =
addPlaylist =
removePlaylist =
random = R
select = X, mouseButtonleft, joy0Button3
back = Z, mouseButtonRight, joy0Button2
quit = F4, joy0Button4

# Define controller analogue dead zone. Default (when not configured) is 3%.
# deadZone = 3

##############################################################################
# MOUSE CODES
######################  ######################################################
# Code                  # Description
######################  ######################################################   
# mouseButtonLeft       Left mouse click
# mouseButtonMiddle     Middle mouse click
# mouseButtonRight      Right mouse click
# mouseButtonX1         ?
# mouseButtonX2         ?

##############################################################################
# JOYSTICK/GAMEPAD CODES
######################  ######################################################
# Code                  # Description
######################  ######################################################
#                       X is joypad number (0 is first joystick/gamepad)
# joyXHatYLeftUp        Y=hat number (0 is the first dpad) (example joy0Hat0Up)
# joyXHatYLeft
# joyXHatYLeftDown
# joyXHatYUp
# joyXHatYDown
# joyXHatYRightUp
# joyXHatYRight
# joyXHatYRightDown
# joyXButtonY           Y is button number (0 is first button)
#                       Example: joy1button7 -> second joystick, 8th button
#                       Open up the gamepad control panel in windows or use
#                       "jstest" in linux
#                       
# joyXAxis0+            First POV stick, first axis positive direction
#                       (axis 0 is usually x)
# joyXAxis0-            First POV stick, first axis positive direction
#                       (axis 0 is usually x)
# joyXAxis1+            First POV stick, second axis positive direction
#                       (axis 0 is usually y)
#joyXAxis1-             First POV stick, second axis positive direction
#                       (axis 0 is usually y)
#
# joyXAxis2+            Second POV stick, first axis positive direction
#                       (axis 2 is usually x)
# joyXAxis2-            Second POV stick, first axis positive direction
#                       (axis 2 is usually x)
# joyXAxis3+            Second POV stick, second axis positive direction
#                       (axis 3 is usually y)
# joyXAxis3-            Second POV stick, second axis positive direction
#                       (axis 3 is usually y)

##############################################################################
# KEYBOARD CODES
######################  ######################################################
# Code                  # Description
######################  ######################################################   
# "0"                       
# "1"
# "2"
# "3"
# "4"
# "5"
# "6"
# "7"
# "8"
# "9"
# "A"
# "AC Back"               the Back key (application control keypad)
# "AC Bookmarks"          the Bookmarks key (application control keypad)
# "AC Forward"            the Forward key (application control keypad)
# "AC Home"               the Home key (application control keypad)
# "AC Refresh"            the Refresh key (application control keypad)
# "AC Search"             the Search key (application control keypad)
# "AC Stop"               the Stop key (application control keypad)
# "Again"                 the Again key (Redo)
# "AltErase"              Erase-Eaze
# "'"
# "Application"           the Application / Compose / Context Menu (Windows)
#                         key
# "AudioMute"             the Mute volume key
# "AudioNext"             the Next Track media key
# "AudioPlay"             the Play media key
# "AudioPrev"             the Previous Track media key
# "AudioStop"             the Stop media key)
# "B"
# "\"                     Located at the lower left of the return key on ISO
#                         keyboards and at the right end of the QWERTY row 
#                         on ANSI keyboards. Produces REVERSE SOLIDUS 
#                         (backslash) and VERTICAL LINE in a US layout,
#                         REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout,
#                         NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR
#                         SIGN and POUND SIGN in a Swiss German layout,
#                         NUMBER SIGN and APOSTROPHE in a German layout, GRAVE
#                         ACCENT and POUND SIGN in a French Mac layout, and
#                         ASTERISK and MICRO SIGN in a French Windows layout.
# "Backspace"
# "BrightnessDown"        the Brightness Down key
# "BrightnessUp"          the Brightness Up key
# "C"
# "Calculator"            the Calculator key
# "Cancel"
# "CapsLock"
# "Clear"
# "Clear / Again"
# ","
# "Computer"              the My Computer key
# "Copy"
# "CrSel"
# "CurrencySubUnit"       the Currency Subunit key
# "CurrencyUnit"          the Currency Unit key
# "Cut"
# "D"
# "DecimalSeparator"      the Decimal Separator key
# "Delete"
# "DisplaySwitch"         display mirroring/dual display switch, video mode
#                         switch
# "Down"                  the Down arrow key (navigation keypad)
# "E"
# "Eject"                 the Eject key)
# "End"
# "="
# "Escape"                the Esc key)
# "Execute"
# "ExSel"
# "F"
# "F1"
# "F10"
# "F11"
# "F12"
# "F13"
# "F14"
# "F15"
# "F16"
# "F17"
# "F18"
# "F19"
# "F2"
# "F20"
# "F21"
# "F22"
# "F23"
# "F24"
# "F3"
# "F4"
# "F5"
# "F6"
# "F7"
# "F8"
# "F9"
# "Find"
# "G"
# "`"                     Located in the top left corner (on both ANSI and ISO
#                         keyboards). Produces GRAVE ACCENT and TILDE in a US
#                         Windows layout and in US and UK Mac layouts on ANSI
#                         keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows
#                         layout, SECTION SIGN and PLUS-MINUS SIGN in US and
#                         UK Mac layouts on ISO keyboards, SECTION SIGN and
#                         DEGREE SIGN in a Swiss German layout (Mac: only on
#                         ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN
#                         in a German layout (Mac: only on ISO keyboards),
#                         SUPERSCRIPT TWO and TILDE in a French Windows layout,
#                         COMMERCIAL AT and NUMBER SIGN in a French Mac layout
#                         on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN
#                         SIGN in a Swiss German, German, or French Mac layout
#                         on ANSI keyboards.
# "H"
# "Help"
# "Home"
# "I"
# "Insert"                insert on PC, help on some Mac keyboards (but does
#                         send code 73, not 117)
# "J"
# "K"
# "KBDIllumDown"          the Keyboard Illumination Down key
# "KBDIllumToggle"        the Keyboard Illumination Toggle key
# "KBDIllumUp"            the Keyboard Illumination Up key
# "Keypad 0"              the 0 key (numeric keypad)
# "Keypad 00"             the 00 key (numeric keypad)
# "Keypad 000"            the 000 key (numeric keypad)
# "Keypad 1"              the 1 key (numeric keypad)
# "Keypad 2"              the 2 key (numeric keypad)
# "Keypad 3"              the 3 key (numeric keypad)
# "Keypad 4"              the 4 key (numeric keypad)
# "Keypad 5"              the 5 key (numeric keypad)
# "Keypad 6"              the 6 key (numeric keypad)
# "Keypad 7"              the 7 key (numeric keypad)
# "Keypad 8"              the 8 key (numeric keypad)
# "Keypad 9"              the 9 key (numeric keypad)
# "Keypad A"              the A key (numeric keypad)
# "Keypad &"              the & key (numeric keypad)
# "Keypad @"              the @ key (numeric keypad)
# "Keypad B"              the B key (numeric keypad)
# "Keypad Backspace"      the Backspace key (numeric keypad)
# "Keypad Binary"         the Binary key (numeric keypad)
# "Keypad C"              the C key (numeric keypad)
# "Keypad Clear"          the Clear key (numeric keypad)
# "Keypad ClearEntry"     the Clear Entry key (numeric keypad)
# "Keypad :"              the : key (numeric keypad)
# "Keypad ,"              the Comma key (numeric keypad)
# "Keypad D"              the D key (numeric keypad)
# "Keypad &&"             the && key (numeric keypad)
# "Keypad ||"             the || key (numeric keypad)
# "Keypad Decimal"        the Decimal key (numeric keypad)
# "Keypad /"              the / key (numeric keypad)
# "Keypad E"              the E key (numeric keypad)
# "Keypad Enter"          the Enter key (numeric keypad)
# "Keypad ="              the = key (numeric keypad)
# "Keypad = (AS400)"      the Equals AS400 key (numeric keypad)
# "Keypad !"              the ! key (numeric keypad)
# "Keypad F"              the F key (numeric keypad)
# "Keypad >"              the Greater key (numeric keypad)
# "Keypad #"              the # key (numeric keypad)
# "Keypad Hexadecimal"    the Hexadecimal key (numeric keypad)
# "Keypad {"              the Left Brace key (numeric keypad)
# "Keypad ("              the Left Parenthesis key (numeric keypad)
# "Keypad <"              the Less key (numeric keypad)
# "Keypad MemAdd"         the Mem Add key (numeric keypad)
# "Keypad MemClear"       the Mem Clear key (numeric keypad)
# "Keypad MemDivide"      the Mem Divide key (numeric keypad)
# "Keypad MemMultiply"    the Mem Multiply key (numeric keypad)
# "Keypad MemRecall"      the Mem Recall key (numeric keypad)
# "Keypad MemStore"       the Mem Store key (numeric keypad)
# "Keypad MemSubtract"    the Mem Subtract key (numeric keypad)
# "Keypad -"              the - key (numeric keypad)
# "Keypad \*"              the \* key (numeric keypad)
# "Keypad Octal"          the Octal key (numeric keypad)
# "Keypad %"              the Percent key (numeric keypad)
# "Keypad ."              the . key (numeric keypad)
# "Keypad +"              the + key (numeric keypad)
# "Keypad +/-"            the +/- key (numeric keypad)
# "Keypad ^"              the Power key (numeric keypad)
# "Keypad }"              the Right Brace key (numeric keypad)
# "Keypad )"              the Right Parenthesis key (numeric keypad)
# "Keypad Space"          the Space key (numeric keypad)
# "Keypad Tab"            the Tab key (numeric keypad)
# "Keypad \|"              the \| key (numeric keypad)
# "Keypad XOR"            the XOR key (numeric keypad)
# "L"
# "Left Alt"              alt, option
# "Left Ctrl"
# "Left"                  the Left arrow key (navigation keypad)
# "["
# "Left GUI"              windows, command (apple), meta
# "Left Shift"
# "M"
# "Mail"                  the Mail/eMail key
# "MediaSelect"           the Media Select key
# "Menu"
# "-"
# "ModeSwitch"            I'm not sure if this is really not covered by any of
#                         the above, but since there's a special KMOD_MODE for
#                         it I'm adding it here
# "Mute"
# "N"
# "Numlock"               the Num Lock key (PC) / the Clear key (Mac)
# "O"
# "Oper"
# "Out"
# "P"
# "PageDown"
# "PageUp"
# "Paste"
# "Pause"                 the Pause / Break key
# "."
# "Power"                 The USB document says this is a status flag, not a
#                         physical key - but some Mac keyboards do have a
#                         power key.
# "PrintScreen"
# "Prior"
# "Q"
# "R"
# "Right Alt"             alt gr, option
# "Right Ctrl"
# "Return"                the Enter key (main keyboard)
# "Return"
# "Right GUI"             windows, command (apple), meta
# "Right"                 the Right arrow key (navigation keypad)
# "]"
# "Right Shift"
# "S"
# "ScrollLock"
# "Select"
# ";"
# "Separator"
# "/"
# "Sleep"                 the Sleep key
# "Space"                 the Space Bar key(s)
# "Stop"
# "SysReq"                the SysReq key
# "T"
# "Tab"                   the Tab key
# "ThousandsSeparator"    the Thousands Separator key
# "U"
# "Undo"
# "Up"                    the Up arrow key (navigation keypad)
# "V"
# "VolumeDown"
# "VolumeUp"
# "W"
# "WWW"                   the WWW/World Wide Web key
# "X"
# "Y"
# "Z"
# "#"                     ISO USB keyboards actually use this code instead of
#                         49 for the same key, but all OSes I've seen treat 
#                         the two codes identically. So, as an implementor,
#                         unless your  keyboard generates both of those codes 
#                         and your OS treats them differently, you should 
#                         generate SDL_SCANCODE_BACKSLASH instead of this
#                         code. As a user, you should not rely on this code 
#                         becauseSDL will never generate it with most (all?)
#                         keyboards.
# "&"
# "*"
# "@"
# "^"
# ":"
# "$"
# "!"
# ">"
# "#"
# "("
# "<"
# "%"
# "+"
# "?"
# ")"
# "_"

# These codes were taken from https://wiki.libsdl.org/SDL_Keycode

cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #4 on: February 08, 2017, 05:30:56 AM »
Still not working on 0.7.21b1 ):

log is: http://pastebin.com/ewZc37Wb

Controls are:

Code: [Select]
up = Up,joy0Hat0Up,joyXAxis1-
down = Down,joy0Hat0Down,joyXAxis1+
left = Left,joy0Hat0Left,joyXAxis0-
right = Right,joy0Hat0Right,joyXAxis0+
pageUp = A,joy0Button4
pageDown = S,joy0Button5
letterUp = W,joy0Button6
letterDown = Q,joy0Button7
prevPlaylist =
nextPlaylist =
addPlaylist =
removePlaylist =
favPlaylist =
random = R
select = X,mouseButtonleft,joy0Button3,joy0Button1
back = Z,mouseButtonRight,joy0Button2,joy0Button4
quit = F4

It worked randomly once again by the way, but 90% of the time it either crashes RetroFE on startup, or it launches it fine but the joystick isn't recognized.

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #5 on: February 08, 2017, 07:38:59 AM »
I'll try to reproduce the problem using a PS3 controller, but I would welcome someone else with a PS4 controller to chip in, especially if you have the ability to run RetroFE through a debugger. I'm not sure what makes the PS4 controller different in this regard.

PinealServo

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #6 on: February 08, 2017, 03:17:36 PM »
I did a bit of searching; I've seen other reports that implicate DS4Windows in unusual game crashes. Can you use it without DS4Windows?  There are apparently two ways to install DS4Windows, and switching to the non-%appdata% way apparently solved problems for some people.  Might be worth a try investigating this angle, but I don't really know for sure.

Multiplexer

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #7 on: February 08, 2017, 06:03:56 PM »
Check that 'Hide DS4 Controller' is checked under the settings tab of DS4Windows. I think that may cause issues if it isn't.

cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #8 on: February 09, 2017, 01:33:47 AM »
First of all thanks a lot for your help. So after trying with these suggestions, this is what happens:

- Downloading a fresh version of DS4Windows, and using the the non-%appdata% setup (which is just saving the settings on the folder the .exe is located instead of appdata) outputs the same problem.
- After ticking "Hide DS4 Controller" RetroFE now never crashes, but it almost never recognizes the controller (just once or twice out of dozen of attempts). I tried unticking it again, and it's not crashing any more, so maybe it stopped crashing just because.
- Exiting DS4Windows and connecting the controller without it makes everything work. This is very nice for now, but is not the ideal solution because eventually I'll need DS4Windows for computer games that don't have native joystick support, plus I miss on some of the functionalities that DS4Windows that I use (touchpad support, shortcuts, etc).

So clearly DS4Windows is clashing with RetroFE somehow. The "Hide DS4 Controller" box "hides the DS4's regular input (Dinput) from other programs, check if you are getting double input in games" sounds like it could fix the issue, but it doesn't.

edit: actually, it's kind of hard using it without DS4Windows, since it goes crazy with some inputs. For example the select one selects twice from the main menu, so that'd be: open RetroFE > press select once on first system displayed > enters the system > enters the first game, rather than just entering the system. Also, the wheel goes crazy often, after doing page up/down or letter up/down, or just moving with the d-pad after some seconds. I thought it would have something to do with the deadzone, so I changed it to 50, but it still happens (though that fixed a previous problem in which the analog stick would be too sensitive).

Code: [Select]
up = Up,joy0Hat0Up,joyXAxis1-
down = Down,joy0Hat0Down,joyXAxis1+
left = Left,joy0Hat0Left,joyXAxis0-
right = Right,joy0Hat0Right,joyXAxis0+
pageUp = A,joy0Button4
pageDown = S,joy0Button5
letterUp = W,joy0Button7
letterDown = Q,joy0Button6
prevPlaylist =
nextPlaylist =
addPlaylist =
removePlaylist =
favPlaylist =
random = R
select = X,mouseButtonleft,joy0Button0,joy0Button1,joy0Button2
back = Z,mouseButtonRight,joy0Button3
quit = F4,joy0Button12
deadZone = 50
« Last Edit: February 09, 2017, 09:21:46 PM by firewater »

Multiplexer

  • Newbie
  • *
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #9 on: February 09, 2017, 10:01:50 PM »
Quote
edit: actually, it's kind of hard using it without DS4Windows, since it goes crazy with some inputs. For example the select one selects twice from the main menu, so that'd be: open RetroFE > press select once on first system displayed > enters the system > enters the first game, rather than just entering the system. Also, the wheel goes crazy often, after doing page up/down or letter up/down, or just moving with the d-pad after some seconds. I thought it would have something to do with the deadzone, so I changed it to 50, but it still happens (though that fixed a previous problem in which the analog stick would be too sensitive).

To stop this happening make sure there is this line in settings.conf for RetroFE:-

collectionInputClear=true

cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #10 on: February 10, 2017, 04:02:44 AM »
Quote
edit: actually, it's kind of hard using it without DS4Windows, since it goes crazy with some inputs. For example the select one selects twice from the main menu, so that'd be: open RetroFE > press select once on first system displayed > enters the system > enters the first game, rather than just entering the system. Also, the wheel goes crazy often, after doing page up/down or letter up/down, or just moving with the d-pad after some seconds. I thought it would have something to do with the deadzone, so I changed it to 50, but it still happens (though that fixed a previous problem in which the analog stick would be too sensitive).

To stop this happening make sure there is this line in settings.conf for RetroFE:-

collectionInputClear=true

Wow!! This fixed it, thanks. What does this do?

It really is too bad DS4Windows is messing with the "signal" somehow... perhaps there's nothing the devs making RetroFE can do, but regardless I don't want this to be seen like the problem is fixed because I really am missing on some Windows games that don't support joystick and also the hotkey support which I use a lot to map the PS button so it records video.

So if someone who is using DS4Windows and DOESN'T have this issue is reading this, please post, because I want to know if it's related to my own setup or it's a thing with the program.

edit: the touchpad function of DS4Windows has the left panel of the DS4 touchpad mapped to "Left Click", and I have left click mapped to "Select" on RetroFE. For what it's worth, this is the only button that works inside RetroFE with DS4Windows. I tried change "joy0Hat0Up" to "joy1Hat0Up" and a dozen of other numbers, hoping I'd find a match, but nothing. It's weird because joy0Hat0Up works without DS4Windows...

edit2: oh my god it's back again to rotating crazily... I didn't even change anything and the line that fixed it still there
« Last Edit: February 10, 2017, 04:59:35 AM by firewater »

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #11 on: February 10, 2017, 07:21:17 AM »
It doesn't fix spinning issues; it just clears the queue when entering and exiting a collection. Spinning is caused by RetroFE/SDL not detecting the release of the button.

Sent from my SM-G920F using Tapatalk


Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #12 on: February 10, 2017, 11:32:47 AM »
I guess I should invest in some controllers sometime so I can do some tests, and create configuration files...

Sent from my SM-G920F using Tapatalk


cassette

  • Full Member
  • ***
  • Posts: 170
  • Karma: +1/-0
    • View Profile
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #13 on: February 10, 2017, 10:04:50 PM »
Oooh I even forgot I had that problem too haha, yes, it fixed that one (and the spinning coincidentally stopped along with it for some time). It really would mean a lot if you could test with a DS4 and DS4Windows, but it's probably a low priority unless people with Xbox controllers and the like are also having issues. Whenever you can!

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: RetroFe crashes if DS4 is connected to the computer
« Reply #14 on: February 10, 2017, 11:11:27 PM »
Not so much low priority, but simply not having the needed equipment to test it. I only own a PS3 controller atm.

Sent from my SM-G920F using Tapatalk