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

fix foot bar button layouts being swapped #246

Merged
merged 2 commits into from
Aug 20, 2019

Conversation

Cecilectomy
Copy link
Contributor

When using SNES it shows the button actions for XBOX
When using XBOX it shows the button actions for SNES

When using SNES it shows the button actions for XBOX
When using XBOX it shows the button actions for SNES
@cuu
Copy link
Contributor

cuu commented Jul 8, 2019

it is not swapped

@Cecilectomy
Copy link
Contributor Author

You are only partially correct, it is not entirely swapped, it IS however still incorrect. When SNES is selected as the button layout the button actions do NOT match the layout.

B does NOT toggle, it goes back, and A does NOT go back, it toggles, and Y does NOT update retroarch, X does. The same is true on other screens. Screen shot attached:

IMG_20190707_174009

@Cecilectomy
Copy link
Contributor Author

My fix appears to only have switched the issue to the xbox layout instead of the snes layout.

If the intention of the afflicted update was to make it so the actual buttons stay the same, but the button image and action text change, then it was not done correctly.

Otherwise reverting back to the code before where it does not take into account whether xbox is selected or not, then barr = ["nav","y","x","b","a","select"] worked fine before. There was no need to change it to:

if config.ButtonsLayout == "xbox":
    barr = ["nav","y","x","b","a","select"]
else:
    barr = ["nav","x","y","a","b","select"]

Please explain.

This causes SNES button actions to be backwards.
Please merge this pull request to revert back, or properly fix whatever the update was supposed to change in the first place.
@cuu
Copy link
Contributor

cuu commented Jul 8, 2019

the text changes when the buttons layout changes,that's the purpose
I did not see any problems ,sorry
like A is Enter when the layout is XBOX
A is Back when the layout is SNES
what is the problem anyway? I dont understand

@Cecilectomy
Copy link
Contributor Author

Look at the screenshot. Look at the button layout on screen, and look at the buttons on the actual GameShell. They match. This is called SNES layout.

Now look at the footer action text. It says "(A) Back" and "(B) Toggle".

The issue is that this is NOT true. If A is pressed it toggles (but it says it should be "Back"), and if B is pressed, it backs (but it says it should be "Toggle").

I am not sure how much clearer I can be. For SNES the actions are wrong.

SIDE NOTE: for SNES, A as the back button doesn't make sense because on the snes, gb, gba, and pretty much all Nintendo consoles, A is typically "accept" and B is "cancel" or "back", and before this change that was correct on the GameShell using SNES layout.

@Cecilectomy
Copy link
Contributor Author

Cecilectomy commented Jul 8, 2019

Are you trying to change the text so that when you change to SNES mode the text matches without actually changing the device button layout physically? That makes absolutely no sense since the point of the layout is that the button layout should physically change on the device as well (meaning the user physically puts the buttons to match the actual layout). The update only makes sense if the users changes the layout to SNES but leaves the physical buttons on the GameShell as the XBOX layout... ???

@cuu
Copy link
Contributor

cuu commented Jul 8, 2019

ok ,now I can understand a little bit
sorry for my english and really thanks for your explanation,really
and you are right at last comment, but clockworkpi wants to do it like so
And it doesn't seem to possible to satisfy both sides for now.
For the confusing from different understanding the buttons layout ,
Maybe it is better to close this feature in the future to save troubles?

@Cecilectomy
Copy link
Contributor Author

So the intention is to avoid confusion with users that change the layout but not the actual buttons? But to do this would be at the expense of people who actually want to use the proper physical layout...

I feel like it should follow the proper physical layouts and have a notice / text explaining that the layout needs to be made to the physical buttons as well.

Or maybe add a third layout? XBOX, SNES, and SNES (Physical)?

If this is acceptable, I can make a third layout and update the code to account for it.

@4k1
Copy link
Contributor

4k1 commented Jul 8, 2019

You are only partially correct, it is not entirely swapped, it IS however still incorrect. When SNES is selected as the button layout the button actions do NOT match the layout.

B does NOT toggle, it goes back, and A does NOT go back, it toggles, and Y does NOT update retroarch, X does. The same is true on other screens. Screen shot attached:

IMG_20190707_174009

hi @Cecilectomy,
Interesting behavior.
How did you operation on it?
On my environment,

  • SNES Compatible: [X] Update [A] Toggle [B] Back
  • XBOX Compatible: [X] Update [A] Toggle [B] Back

both modes don't shows like your screenshot.

Could it be possible that are you using LuncherGo?
Now on LuncherGo, the footer indicator doesn't toggle.(not fixed yet)

@Cecilectomy
Copy link
Contributor Author

Cecilectomy commented Jul 8, 2019

hi @4k1

No, I am not using launchergo.

This issue was introduced to launcher in commit badeb13 (you will need to update to this commit or newer to see the behavior)

You should notice that lines 139-142 in sys.py/UI/foot_bar.py change the code from using a single array of key texts to using two different ones depending on if it sees you have xbox layout selected or not.

Before this change, it did indeed behave like you are describing on your environment, which in my opinion was correct (and this update makes the SNES layout incorrect).

But, If I understand @cuu correctly, they are changing this behavior even though it does not match the actual physical layout the SNES layout represents (read comments above). I am not entirely sure why, as it makes absolutely no sense since the layouts represent a physical layout, and the actions now no longer correspond correctly.

@4k1
Copy link
Contributor

4k1 commented Jul 8, 2019

Oh now I understand what happened and the codes related the buttons layout has been large updated by b47b020 and badeb13.
Thanks!
I'll update to newest on my device and try to review this issue.

@glindsey
Copy link

I have to second @Cecilectomy's comment. To change this functionality so that the button layout shown no longer matches the physical layout on the system is an extremely poor choice with regards to user experience.

@rmdesign
Copy link

Yes, please fix this so that we can position our physical buttons in the SNES layout (as per the SNES Compatible screen), and have the on-screen button prompts match the actual button labels.

It was working perfectly previous. This change has broken things for people who prefer the SNES button layout.

@cuu cuu merged commit 087a10d into clockworkpi:master Aug 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants