Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controller not working on iOS 12.4 with nControl #12311

Open
Shihira opened this issue Sep 8, 2019 · 7 comments
Open

Controller not working on iOS 12.4 with nControl #12311

Shihira opened this issue Sep 8, 2019 · 7 comments
Labels
Milestone

Comments

@Shihira
Copy link

Shihira commented Sep 8, 2019

How to reproduce:

  1. Get an iOS 12.4 device
  2. jailbreak and install nControl_1.2.2-19 and PPSSPP(Dev-Latest)_0v1.6.3-456 from Cydia
  3. Connect a Xbox One Controller, which works well with Steam Link
  4. Launch PPSSPP, and try to move around with the joystick
  5. The controller is not controlling PPSSPP at all, and I am not able to map buttons either

On cydia it says PPSSPP only supports until iOS 11, but it launched and games were running normally. I am just wondering if PPSSPP simply don't support this sort of controller or it is all about system imcompatibility? And is there any plan to adapt this, because it has been officially stated that third party controllers are supported on iOS 13.

@LunaMoo LunaMoo added Input/Controller Input and controller issues Platform-specific (iOS) labels Sep 8, 2019
@LunaMoo
Copy link
Collaborator

LunaMoo commented Sep 8, 2019

Just to note - there's really no active developer working with iOS in here so it's not officially supported, probably best thing you can do is try to solve it yourself or google for other people that had that issue and solved it for themselves.

Also we're almost at version 1.9, the version you're using is VERY old, to get new one you will have to build it yourself ~ https://github.com/hrydgard/ppsspp/wiki/Build-instructions

@Shihira
Copy link
Author

Shihira commented Sep 8, 2019

Thank you. I noticed some information about a 1.8 port when browsing around. Maybe I can get some help there.

@Shihira
Copy link
Author

Shihira commented Sep 12, 2019

Tried with the build instruction written in #11905 and successfully install the v1.8.0 on iOS 12.4, iPad Pro 2nd-Gen

And the controller works very well out of the box. So it turns out that it was the problem of the outdated version provided on the cydia repo. Btw the app cannot launch the second time as #9186 reports. Anyway now that the controller problem has gone I will close this issue.

Thanks again for your great app.

@Shihira Shihira closed this as completed Sep 12, 2019
@Shihira
Copy link
Author

Shihira commented Sep 12, 2019

Sorry but I have to reopen this issue. The problem is still there, and it turns out to be fortuitous. I was using the same controller, the same version of PPSSPP. As I have reported earlier this day the controller was just recognizable at that time. What I didn't say is that it soon became broken after a reboot. However half an hour ago it's suddenly recognized by PPSSPP again until the next reboot (I have to reboot again and again because the app hangs easily). I think more witness is still needed and I will do more tests.

Is there a way to view PPSSPP log file in iOS 12? I have tried socat to syslog without success, there wasn't anything meaningful. Is that the logging relies on stdout?

@Shihira Shihira reopened this Sep 12, 2019
@Shihira
Copy link
Author

Shihira commented Sep 13, 2019

I figured it out myself. I managed to replace logging macros with syslog (from sys/syslog.h), finding that PPSSPP can actually recognize all controllers steadily, including a dummy Switch Pro controller that has been disconnected already. It is likely an nControl bug, that it sends connect events from all controllers without filtering out the unavailable ones and forgotten ones, and the only way to forget those is to reboot.

The dummy controller comes first, this line in ViewController.mm rejected the one coming later. My approach is just to comment out this line. Not saying that's a better policy, but at least I can reconnect the controller to make it work. For those historical controllers I can't even disconnect them.

if (self.gameController != nil) return; // already have a connected controller

As a feature request can you replace printf logging macros with syslog? I think it is reliable enough on iOS, and easier to monitor.

Thanks again for your great app.

@hrydgard
Copy link
Owner

Pull requests accepted for both syslog and your commenting out of the line :)

@hrydgard hrydgard added this to the v1.10.0 milestone Sep 13, 2019
@unknownbrackets
Copy link
Collaborator

Hm, if we remove that line then it means we get the latest connected controller instead of the first? That's probably better but I guess there's no way to say for sure. Seems like the best way would be to register all of them (PPSSPP supports multiple controllers.)

We already use different logging macros on Android, I'd imagine the same approach can be used for iOS.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants