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

[Bug] Sega Saturn P1 start button function don't work with MFI controller #1986

Closed
RaphaelZimermann opened this issue Oct 23, 2022 · 2 comments
Assignees
Labels
bug something broken that needs fixing, confirmed and reproduceable
Milestone

Comments

@RaphaelZimermann
Copy link

On press start in my MFI controller, the popup options open, fine. But where I click in the P1 start or touch manually, the start function doesn't run.

@RaphaelZimermann RaphaelZimermann added the bug something broken that needs fixing, confirmed and reproduceable label Oct 23, 2022
@RaphaelZimermann RaphaelZimermann changed the title Sega Saturn P1 start button function don't work with MFI controller [Bug] Sega Saturn P1 start button function don't work with MFI controller Oct 25, 2022
@JoeMatt JoeMatt added this to the 2.1.2 milestone Nov 2, 2022
@JoeMatt JoeMatt self-assigned this Nov 9, 2022
@mrjschulte
Copy link
Collaborator

Apparently this is still a thing. Getting reports that this isn't working on tvOS w MFI. Even the P1 Start option in the menu isn't working.

@mrjschulte mrjschulte reopened this Nov 27, 2022
@JoeMatt
Copy link
Member

JoeMatt commented Nov 28, 2022

My solution is to brute force if it's a XBox/PSX controller, and use their extra buttons,
or if the controller has a options button (8BitDo SNES Pro etc) use that,
or else finally, steal the modifier combo code from PSX meaning, hold all paddles/triggers and button X.

      if (dualSense) {
                        return self.isStartPressed || dualSense.touchpadButton.isPressed;
                    } else if (dualShock) {
                        return self.isStartPressed || dualShock.touchpadButton.isPressed;
                    } else if (xbox) {
                        return self.isStartPressed || xbox.buttonShare.isPressed;
                    } else {
//                        if (!gamepad.buttonHome.isBoundToSystemGesture) {
//                            return gamepad.buttonHome.isPressed;
//                        }
                        if (gamepad.buttonOptions) {
                            return gamepad.buttonOptions.isPressed;
                        }

                        bool modifier1Pressed = [[gamepad leftShoulder] isPressed] && [[gamepad rightShoulder] isPressed];
                        bool modifier2Pressed = [[gamepad leftTrigger] isPressed] && [[gamepad rightTrigger] isPressed];
                        bool modifiersPressed = modifier1Pressed && modifier2Pressed;

                        return self.isStartPressed || (modifiersPressed && [[gamepad buttonX] isPressed]);
                    }
                    ```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug something broken that needs fixing, confirmed and reproduceable
Projects
None yet
Development

No branches or pull requests

3 participants