Add option to toggle shoulder buttons #39
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This does what I talked about in issue #32.
It adds a new option and on-screen toggle for
tVBOpt.ZLZR_MODE
, which tracks the user's shoulder button preference. Using this setting, whichever input is currently mapped to the touch screen also gets mapped to the user's chosen shoulder buttons, which means players on New models aren't forced to use the touch screen in games which have more complicated control schemes (at least Jack Bros., Red Alarm, Teleroboxer and Virtual Bowling).This setting has four possible values, which map to the following layouts:
Reasons for draft status
Do you want a way to disable this option entirely on original 3DS models?Done
EDIT: The second build below attempts to check that this is a New 3DS before enabling the shoulder button toggles, but I don't own an original 3DS (and my PC can't run Citra) so I'm not able to actually confirm that it works. If somebody with an o3DS feels like testing that build to check whether the Controls screen looks like the screenshot above or if the top section is removed as I intended, I'll update this PR with that fix.
EDIT2: Confirmed via Citra Android that the New 3DS check is working and updated this PR to add it in.
C2D_DrawText
does some kinda weird stuff with some glyphs, it feels like it doesn't leave enough padding for anti-aliasing of the text? See the way the (B) buttons look slightly clipped on each side. Not sure if this is fixable in C2D?Fixed
EDIT3: This is an upstream bug with
C2D_AlignCenter
, using different alignments prevents this clipping from occurring (but obviously complicates the process of laying out text when the center is what you need).EDIT4: I have filed upstream issue C2D_Text's width seems truncated when using C2D_AlignCenter devkitPro/citro2d#47 about this apparent oversight.
In the meantime, I have implemented a workaround for the text rendering bug by shifting each glyph by a half pixel. Build 3 below includes this fix.
Without workaround:
With workaround:
Test builds