summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Narr the Reg2023-02-13 12:56:16 -0600
committerGravatar bunnei2023-06-03 00:05:30 -0700
commit43e43021a328bf93585f2140703d3e15cc37bdeb (patch)
tree7b1f794d5aba0903995576ecfbfbaf11e0546f04
parentandroid: Apply clang format (diff)
downloadyuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.tar.gz
yuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.tar.xz
yuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.zip
android: Add all buttons to screen controller
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java40
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.java174
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.java9
-rw-r--r--src/android/app/src/main/res/values/integers.xml90
4 files changed, 104 insertions, 209 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java
index e4619d253..dbbc339ec 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java
@@ -619,30 +619,22 @@ public final class NativeLibrary {
619 public static final int BUTTON_B = 1; 619 public static final int BUTTON_B = 1;
620 public static final int BUTTON_X = 2; 620 public static final int BUTTON_X = 2;
621 public static final int BUTTON_Y = 3; 621 public static final int BUTTON_Y = 3;
622 public static final int BUTTON_START = 11; 622 public static final int STICK_L = 4;
623 public static final int BUTTON_SELECT = 12; 623 public static final int STICK_R = 5;
624 public static final int BUTTON_HOME = 19; 624 public static final int TRIGGER_L = 6;
625 public static final int BUTTON_ZL = 9; 625 public static final int TRIGGER_R = 7;
626 public static final int BUTTON_ZR = 10; 626 public static final int TRIGGER_ZL = 8;
627 public static final int DPAD_UP = 14; 627 public static final int TRIGGER_ZR = 9;
628 public static final int DPAD_DOWN = 16; 628 public static final int BUTTON_PLUS = 10;
629 public static final int DPAD_LEFT = 13; 629 public static final int BUTTON_MINUS = 11;
630 public static final int DPAD_RIGHT = 15; 630 public static final int DPAD_LEFT = 12;
631 public static final int STICK_LEFT = 5; 631 public static final int DPAD_UP = 13;
632 public static final int STICK_LEFT_UP = 714; 632 public static final int DPAD_RIGHT = 14;
633 public static final int STICK_LEFT_DOWN = 715; 633 public static final int DPAD_DOWN = 15;
634 public static final int STICK_LEFT_LEFT = 716; 634 public static final int BUTTON_SL = 16;
635 public static final int STICK_LEFT_RIGHT = 717; 635 public static final int BUTTON_SR = 17;
636 public static final int STICK_C = 6; 636 public static final int BUTTON_HOME = 18;
637 public static final int STICK_C_UP = 719; 637 public static final int BUTTON_CAPTURE = 19;
638 public static final int STICK_C_DOWN = 720;
639 public static final int STICK_C_LEFT = 771;
640 public static final int STICK_C_RIGHT = 772;
641 public static final int TRIGGER_L = 7;
642 public static final int TRIGGER_R = 8;
643 public static final int DPAD = 780;
644 public static final int BUTTON_DEBUG = 781;
645 public static final int BUTTON_GPIO14 = 782;
646 } 638 }
647 639
648 /** 640 /**
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.java
index 043a164ce..686c656a8 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.java
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.java
@@ -146,14 +146,15 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
146 146
147 switch (buttonId) { 147 switch (buttonId) {
148 case ButtonType.BUTTON_HOME: 148 case ButtonType.BUTTON_HOME:
149 case ButtonType.BUTTON_START: 149 case ButtonType.BUTTON_CAPTURE:
150 case ButtonType.BUTTON_SELECT: 150 case ButtonType.BUTTON_PLUS:
151 case ButtonType.BUTTON_MINUS:
151 scale = 0.08f; 152 scale = 0.08f;
152 break; 153 break;
153 case ButtonType.TRIGGER_L: 154 case ButtonType.TRIGGER_L:
154 case ButtonType.TRIGGER_R: 155 case ButtonType.TRIGGER_R:
155 case ButtonType.BUTTON_ZL: 156 case ButtonType.TRIGGER_ZL:
156 case ButtonType.BUTTON_ZR: 157 case ButtonType.TRIGGER_ZR:
157 scale = 0.18f; 158 scale = 0.18f;
158 break; 159 break;
159 default: 160 default:
@@ -225,7 +226,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
225 final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); 226 final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
226 227
227 // Decide scale based on button ID and user preference 228 // Decide scale based on button ID and user preference
228 float scale = 0.22f; 229 float scale = 0.23f;
229 230
230 scale *= (sPrefs.getInt("controlScale", 50) + 50); 231 scale *= (sPrefs.getInt("controlScale", 50) + 50);
231 scale /= 100; 232 scale /= 100;
@@ -296,11 +297,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
296 int drawableX = (int) sPrefs.getFloat(joystick + orientation + "-X", 0f); 297 int drawableX = (int) sPrefs.getFloat(joystick + orientation + "-X", 0f);
297 int drawableY = (int) sPrefs.getFloat(joystick + orientation + "-Y", 0f); 298 int drawableY = (int) sPrefs.getFloat(joystick + orientation + "-Y", 0f);
298 299
299 // Decide inner scale based on joystick ID 300 float outerScale = 1.3f;
300 float outerScale = 1.f;
301 if (joystick == ButtonType.STICK_C) {
302 outerScale = 2.f;
303 }
304 301
305 // Now set the bounds for the InputOverlayDrawableJoystick. 302 // Now set the bounds for the InputOverlayDrawableJoystick.
306 // This will dictate where on the screen (and the what the size) the InputOverlayDrawableJoystick will be. 303 // This will dictate where on the screen (and the what the size) the InputOverlayDrawableJoystick will be.
@@ -675,21 +672,21 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
675 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_r, 672 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_r,
676 R.drawable.button_r_pressed, ButtonType.TRIGGER_R, orientation)); 673 R.drawable.button_r_pressed, ButtonType.TRIGGER_R, orientation));
677 } 674 }
678 if (mPreferences.getBoolean("buttonToggle6", false)) { 675 if (mPreferences.getBoolean("buttonToggle6", true)) {
679 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zl, 676 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zl,
680 R.drawable.button_zl_pressed, ButtonType.BUTTON_ZL, orientation)); 677 R.drawable.button_zl_pressed, ButtonType.TRIGGER_ZL, orientation));
681 } 678 }
682 if (mPreferences.getBoolean("buttonToggle7", false)) { 679 if (mPreferences.getBoolean("buttonToggle7", true)) {
683 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zr, 680 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zr,
684 R.drawable.button_zr_pressed, ButtonType.BUTTON_ZR, orientation)); 681 R.drawable.button_zr_pressed, ButtonType.TRIGGER_ZR, orientation));
685 } 682 }
686 if (mPreferences.getBoolean("buttonToggle8", true)) { 683 if (mPreferences.getBoolean("buttonToggle8", true)) {
687 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_start, 684 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_start,
688 R.drawable.button_start_pressed, ButtonType.BUTTON_START, orientation)); 685 R.drawable.button_start_pressed, ButtonType.BUTTON_PLUS, orientation));
689 } 686 }
690 if (mPreferences.getBoolean("buttonToggle9", true)) { 687 if (mPreferences.getBoolean("buttonToggle9", true)) {
691 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_select, 688 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_select,
692 R.drawable.button_select_pressed, ButtonType.BUTTON_SELECT, orientation)); 689 R.drawable.button_select_pressed, ButtonType.BUTTON_MINUS, orientation));
693 } 690 }
694 if (mPreferences.getBoolean("buttonToggle10", true)) { 691 if (mPreferences.getBoolean("buttonToggle10", true)) {
695 overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.dpad, 692 overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.dpad,
@@ -701,11 +698,19 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
701 if (mPreferences.getBoolean("buttonToggle11", true)) { 698 if (mPreferences.getBoolean("buttonToggle11", true)) {
702 overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range, 699 overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range,
703 R.drawable.stick_main, R.drawable.stick_main_pressed, 700 R.drawable.stick_main, R.drawable.stick_main_pressed,
704 ButtonType.STICK_LEFT, orientation)); 701 ButtonType.STICK_L, orientation));
705 } 702 }
706 if (mPreferences.getBoolean("buttonToggle12", false)) { 703 if (mPreferences.getBoolean("buttonToggle12", true)) {
707 overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_c_range, 704 overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range,
708 R.drawable.stick_c, R.drawable.stick_c_pressed, ButtonType.STICK_C, orientation)); 705 R.drawable.stick_main, R.drawable.stick_main_pressed, ButtonType.STICK_R, orientation));
706 }
707 if (mPreferences.getBoolean("buttonToggle13", true)) {
708 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_a,
709 R.drawable.button_a, ButtonType.BUTTON_HOME, orientation));
710 }
711 if (mPreferences.getBoolean("buttonToggle14", true)) {
712 overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_a,
713 R.drawable.button_a, ButtonType.BUTTON_CAPTURE, orientation));
709 } 714 }
710 } 715 }
711 716
@@ -741,14 +746,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
741 746
742 private void defaultOverlay() { 747 private void defaultOverlay() {
743 if (!mPreferences.getBoolean("OverlayInit", false)) { 748 if (!mPreferences.getBoolean("OverlayInit", false)) {
744 // It's possible that a user has created their overlay before this was added 749 defaultOverlayLandscape();
745 // Only change the overlay if the 'A' button is not in the upper corner.
746 if (mPreferences.getFloat(ButtonType.BUTTON_A + "-X", 0f) == 0f) {
747 defaultOverlayLandscape();
748 }
749 if (mPreferences.getFloat(ButtonType.BUTTON_A + "-Portrait" + "-X", 0f) == 0f) {
750 defaultOverlayPortrait();
751 }
752 } 750 }
753 751
754 SharedPreferences.Editor sPrefsEditor = mPreferences.edit(); 752 SharedPreferences.Editor sPrefsEditor = mPreferences.edit();
@@ -757,15 +755,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
757 } 755 }
758 756
759 public void resetButtonPlacement() { 757 public void resetButtonPlacement() {
760 boolean isLandscape = 758 defaultOverlayLandscape();
761 getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
762
763 if (isLandscape) {
764 defaultOverlayLandscape();
765 } else {
766 defaultOverlayPortrait();
767 }
768
769 refreshControls(); 759 refreshControls();
770 } 760 }
771 761
@@ -787,86 +777,36 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
787 777
788 // Each value is a percent from max X/Y stored as an int. Have to bring that value down 778 // Each value is a percent from max X/Y stored as an int. Have to bring that value down
789 // to a decimal before multiplying by MAX X/Y. 779 // to a decimal before multiplying by MAX X/Y.
790 sPrefsEditor.putFloat(ButtonType.BUTTON_A + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_A_X) / 1000) * maxX)); 780 sPrefsEditor.putFloat(ButtonType.BUTTON_A + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_A_X) / 1000) * maxX));
791 sPrefsEditor.putFloat(ButtonType.BUTTON_A + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_A_Y) / 1000) * maxY)); 781 sPrefsEditor.putFloat(ButtonType.BUTTON_A + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_A_Y) / 1000) * maxY));
792 sPrefsEditor.putFloat(ButtonType.BUTTON_B + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_B_X) / 1000) * maxX)); 782 sPrefsEditor.putFloat(ButtonType.BUTTON_B + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_B_X) / 1000) * maxX));
793 sPrefsEditor.putFloat(ButtonType.BUTTON_B + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_B_Y) / 1000) * maxY)); 783 sPrefsEditor.putFloat(ButtonType.BUTTON_B + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_B_Y) / 1000) * maxY));
794 sPrefsEditor.putFloat(ButtonType.BUTTON_X + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_X_X) / 1000) * maxX)); 784 sPrefsEditor.putFloat(ButtonType.BUTTON_X + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_X_X) / 1000) * maxX));
795 sPrefsEditor.putFloat(ButtonType.BUTTON_X + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_X_Y) / 1000) * maxY)); 785 sPrefsEditor.putFloat(ButtonType.BUTTON_X + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_X_Y) / 1000) * maxY));
796 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_Y_X) / 1000) * maxX)); 786 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_Y_X) / 1000) * maxX));
797 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_Y_Y) / 1000) * maxY)); 787 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_Y_Y) / 1000) * maxY));
798 sPrefsEditor.putFloat(ButtonType.BUTTON_ZL + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZL_X) / 1000) * maxX)); 788 sPrefsEditor.putFloat(ButtonType.TRIGGER_ZL + "-X", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_ZL_X) / 1000) * maxX));
799 sPrefsEditor.putFloat(ButtonType.BUTTON_ZL + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZL_Y) / 1000) * maxY)); 789 sPrefsEditor.putFloat(ButtonType.TRIGGER_ZL + "-Y", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_ZL_Y) / 1000) * maxY));
800 sPrefsEditor.putFloat(ButtonType.BUTTON_ZR + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZR_X) / 1000) * maxX)); 790 sPrefsEditor.putFloat(ButtonType.TRIGGER_ZR + "-X", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_ZR_X) / 1000) * maxX));
801 sPrefsEditor.putFloat(ButtonType.BUTTON_ZR + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZR_Y) / 1000) * maxY)); 791 sPrefsEditor.putFloat(ButtonType.TRIGGER_ZR + "-Y", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_ZR_Y) / 1000) * maxY));
802 sPrefsEditor.putFloat(ButtonType.DPAD_UP + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_UP_X) / 1000) * maxX)); 792 sPrefsEditor.putFloat(ButtonType.DPAD_UP + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_UP_X) / 1000) * maxX));
803 sPrefsEditor.putFloat(ButtonType.DPAD_UP + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_UP_Y) / 1000) * maxY)); 793 sPrefsEditor.putFloat(ButtonType.DPAD_UP + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_UP_Y) / 1000) * maxY));
804 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + "-X", (((float) res.getInteger(R.integer.N3DS_TRIGGER_L_X) / 1000) * maxX)); 794 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + "-X", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_L_X) / 1000) * maxX));
805 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + "-Y", (((float) res.getInteger(R.integer.N3DS_TRIGGER_L_Y) / 1000) * maxY)); 795 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + "-Y", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_L_Y) / 1000) * maxY));
806 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + "-X", (((float) res.getInteger(R.integer.N3DS_TRIGGER_R_X) / 1000) * maxX)); 796 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + "-X", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_R_X) / 1000) * maxX));
807 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + "-Y", (((float) res.getInteger(R.integer.N3DS_TRIGGER_R_Y) / 1000) * maxY)); 797 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + "-Y", (((float) res.getInteger(R.integer.SWITCH_TRIGGER_R_Y) / 1000) * maxY));
808 sPrefsEditor.putFloat(ButtonType.BUTTON_START + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_START_X) / 1000) * maxX)); 798 sPrefsEditor.putFloat(ButtonType.BUTTON_PLUS + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_PLUS_X) / 1000) * maxX));
809 sPrefsEditor.putFloat(ButtonType.BUTTON_START + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_START_Y) / 1000) * maxY)); 799 sPrefsEditor.putFloat(ButtonType.BUTTON_PLUS + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_PLUS_Y) / 1000) * maxY));
810 sPrefsEditor.putFloat(ButtonType.BUTTON_SELECT + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_SELECT_X) / 1000) * maxX)); 800 sPrefsEditor.putFloat(ButtonType.BUTTON_MINUS + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_MINUS_X) / 1000) * maxX));
811 sPrefsEditor.putFloat(ButtonType.BUTTON_SELECT + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_SELECT_Y) / 1000) * maxY)); 801 sPrefsEditor.putFloat(ButtonType.BUTTON_MINUS + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_MINUS_Y) / 1000) * maxY));
812 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_HOME_X) / 1000) * maxX)); 802 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_HOME_X) / 1000) * maxX));
813 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_HOME_Y) / 1000) * maxY)); 803 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_HOME_Y) / 1000) * maxY));
814 sPrefsEditor.putFloat(ButtonType.STICK_C + "-X", (((float) res.getInteger(R.integer.N3DS_STICK_C_X) / 1000) * maxX)); 804 sPrefsEditor.putFloat(ButtonType.BUTTON_CAPTURE + "-X", (((float) res.getInteger(R.integer.SWITCH_BUTTON_CAPTURE_X) / 1000) * maxX));
815 sPrefsEditor.putFloat(ButtonType.STICK_C + "-Y", (((float) res.getInteger(R.integer.N3DS_STICK_C_Y) / 1000) * maxY)); 805 sPrefsEditor.putFloat(ButtonType.BUTTON_CAPTURE + "-Y", (((float) res.getInteger(R.integer.SWITCH_BUTTON_CAPTURE_Y) / 1000) * maxY));
816 sPrefsEditor.putFloat(ButtonType.STICK_LEFT + "-X", (((float) res.getInteger(R.integer.N3DS_STICK_MAIN_X) / 1000) * maxX)); 806 sPrefsEditor.putFloat(ButtonType.STICK_R + "-X", (((float) res.getInteger(R.integer.SWITCH_STICK_R_X) / 1000) * maxX));
817 sPrefsEditor.putFloat(ButtonType.STICK_LEFT + "-Y", (((float) res.getInteger(R.integer.N3DS_STICK_MAIN_Y) / 1000) * maxY)); 807 sPrefsEditor.putFloat(ButtonType.STICK_R + "-Y", (((float) res.getInteger(R.integer.SWITCH_STICK_R_Y) / 1000) * maxY));
818 808 sPrefsEditor.putFloat(ButtonType.STICK_L + "-X", (((float) res.getInteger(R.integer.SWITCH_STICK_L_X) / 1000) * maxX));
819 // We want to commit right away, otherwise the overlay could load before this is saved. 809 sPrefsEditor.putFloat(ButtonType.STICK_L + "-Y", (((float) res.getInteger(R.integer.SWITCH_STICK_L_Y) / 1000) * maxY));
820 sPrefsEditor.commit();
821 }
822
823 private void defaultOverlayPortrait() {
824 SharedPreferences.Editor sPrefsEditor = mPreferences.edit();
825 // Get screen size
826 Display display = ((Activity) getContext()).getWindowManager().getDefaultDisplay();
827 DisplayMetrics outMetrics = new DisplayMetrics();
828 display.getMetrics(outMetrics);
829 float maxX = outMetrics.heightPixels;
830 float maxY = outMetrics.widthPixels;
831 // Height and width changes depending on orientation. Use the larger value for height.
832 if (maxY < maxX) {
833 float tmp = maxX;
834 maxX = maxY;
835 maxY = tmp;
836 }
837 Resources res = getResources();
838 String portrait = "-Portrait";
839
840 // Each value is a percent from max X/Y stored as an int. Have to bring that value down
841 // to a decimal before multiplying by MAX X/Y.
842 sPrefsEditor.putFloat(ButtonType.BUTTON_A + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_A_PORTRAIT_X) / 1000) * maxX));
843 sPrefsEditor.putFloat(ButtonType.BUTTON_A + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_A_PORTRAIT_Y) / 1000) * maxY));
844 sPrefsEditor.putFloat(ButtonType.BUTTON_B + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_B_PORTRAIT_X) / 1000) * maxX));
845 sPrefsEditor.putFloat(ButtonType.BUTTON_B + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_B_PORTRAIT_Y) / 1000) * maxY));
846 sPrefsEditor.putFloat(ButtonType.BUTTON_X + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_X_PORTRAIT_X) / 1000) * maxX));
847 sPrefsEditor.putFloat(ButtonType.BUTTON_X + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_X_PORTRAIT_Y) / 1000) * maxY));
848 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_Y_PORTRAIT_X) / 1000) * maxX));
849 sPrefsEditor.putFloat(ButtonType.BUTTON_Y + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_Y_PORTRAIT_Y) / 1000) * maxY));
850 sPrefsEditor.putFloat(ButtonType.BUTTON_ZL + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZL_PORTRAIT_X) / 1000) * maxX));
851 sPrefsEditor.putFloat(ButtonType.BUTTON_ZL + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZL_PORTRAIT_Y) / 1000) * maxY));
852 sPrefsEditor.putFloat(ButtonType.BUTTON_ZR + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZR_PORTRAIT_X) / 1000) * maxX));
853 sPrefsEditor.putFloat(ButtonType.BUTTON_ZR + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_ZR_PORTRAIT_Y) / 1000) * maxY));
854 sPrefsEditor.putFloat(ButtonType.DPAD_UP + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_UP_PORTRAIT_X) / 1000) * maxX));
855 sPrefsEditor.putFloat(ButtonType.DPAD_UP + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_UP_PORTRAIT_Y) / 1000) * maxY));
856 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_TRIGGER_L_PORTRAIT_X) / 1000) * maxX));
857 sPrefsEditor.putFloat(ButtonType.TRIGGER_L + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_TRIGGER_L_PORTRAIT_Y) / 1000) * maxY));
858 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_TRIGGER_R_PORTRAIT_X) / 1000) * maxX));
859 sPrefsEditor.putFloat(ButtonType.TRIGGER_R + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_TRIGGER_R_PORTRAIT_Y) / 1000) * maxY));
860 sPrefsEditor.putFloat(ButtonType.BUTTON_START + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_START_PORTRAIT_X) / 1000) * maxX));
861 sPrefsEditor.putFloat(ButtonType.BUTTON_START + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_START_PORTRAIT_Y) / 1000) * maxY));
862 sPrefsEditor.putFloat(ButtonType.BUTTON_SELECT + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_SELECT_PORTRAIT_X) / 1000) * maxX));
863 sPrefsEditor.putFloat(ButtonType.BUTTON_SELECT + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_SELECT_PORTRAIT_Y) / 1000) * maxY));
864 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_BUTTON_HOME_PORTRAIT_X) / 1000) * maxX));
865 sPrefsEditor.putFloat(ButtonType.BUTTON_HOME + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_BUTTON_HOME_PORTRAIT_Y) / 1000) * maxY));
866 sPrefsEditor.putFloat(ButtonType.STICK_C + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_STICK_C_PORTRAIT_X) / 1000) * maxX));
867 sPrefsEditor.putFloat(ButtonType.STICK_C + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_STICK_C_PORTRAIT_Y) / 1000) * maxY));
868 sPrefsEditor.putFloat(ButtonType.STICK_LEFT + portrait + "-X", (((float) res.getInteger(R.integer.N3DS_STICK_MAIN_PORTRAIT_X) / 1000) * maxX));
869 sPrefsEditor.putFloat(ButtonType.STICK_LEFT + portrait + "-Y", (((float) res.getInteger(R.integer.N3DS_STICK_MAIN_PORTRAIT_Y) / 1000) * maxY));
870 810
871 // We want to commit right away, otherwise the overlay could load before this is saved. 811 // We want to commit right away, otherwise the overlay could load before this is saved.
872 sPrefsEditor.commit(); 812 sPrefsEditor.commit();
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.java
index 6919562f3..03d38862b 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.java
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.java
@@ -159,10 +159,6 @@ public final class InputOverlayDrawableJoystick {
159 int fingerPositionY = (int) event.getY(pointerIndex); 159 int fingerPositionY = (int) event.getY(pointerIndex);
160 160
161 int scale = 1; 161 int scale = 1;
162 if (mJoystickType == ButtonType.STICK_C) {
163 // C-stick is scaled down to be half the size of the circle pad
164 scale = 2;
165 }
166 162
167 switch (event.getAction()) { 163 switch (event.getAction()) {
168 case MotionEvent.ACTION_DOWN: 164 case MotionEvent.ACTION_DOWN:
@@ -204,11 +200,6 @@ public final class InputOverlayDrawableJoystick {
204 int X = getVirtBounds().centerX() + (int) ((axises[0]) * (getVirtBounds().width() / 2)); 200 int X = getVirtBounds().centerX() + (int) ((axises[0]) * (getVirtBounds().width() / 2));
205 int Y = getVirtBounds().centerY() + (int) ((axises[1]) * (getVirtBounds().height() / 2)); 201 int Y = getVirtBounds().centerY() + (int) ((axises[1]) * (getVirtBounds().height() / 2));
206 202
207 if (mJoystickType == ButtonType.STICK_LEFT) {
208 X += 1;
209 Y += 1;
210 }
211
212 if (X > getVirtBounds().centerX() + (getVirtBounds().width() / 2)) 203 if (X > getVirtBounds().centerX() + (getVirtBounds().width() / 2))
213 X = getVirtBounds().centerX() + (getVirtBounds().width() / 2); 204 X = getVirtBounds().centerX() + (getVirtBounds().width() / 2);
214 if (X < getVirtBounds().centerX() - (getVirtBounds().width() / 2)) 205 if (X < getVirtBounds().centerX() - (getVirtBounds().width() / 2))
diff --git a/src/android/app/src/main/res/values/integers.xml b/src/android/app/src/main/res/values/integers.xml
index 5cb9e4d14..2d750d89a 100644
--- a/src/android/app/src/main/res/values/integers.xml
+++ b/src/android/app/src/main/res/values/integers.xml
@@ -3,64 +3,36 @@
3 <integer name="game_title_lines">2</integer> 3 <integer name="game_title_lines">2</integer>
4 <integer name="game_grid_columns">1</integer> 4 <integer name="game_grid_columns">1</integer>
5 5
6 <!-- Default N3DS landscape layout --> 6 <!-- Default SWITCH landscape layout -->
7 <integer name="N3DS_BUTTON_A_X">930</integer> 7 <integer name="SWITCH_BUTTON_A_X">930</integer>
8 <integer name="N3DS_BUTTON_A_Y">620</integer> 8 <integer name="SWITCH_BUTTON_A_Y">610</integer>
9 <integer name="N3DS_BUTTON_B_X">870</integer> 9 <integer name="SWITCH_BUTTON_B_X">870</integer>
10 <integer name="N3DS_BUTTON_B_Y">720</integer> 10 <integer name="SWITCH_BUTTON_B_Y">720</integer>
11 <integer name="N3DS_BUTTON_X_X">870</integer> 11 <integer name="SWITCH_BUTTON_X_X">870</integer>
12 <integer name="N3DS_BUTTON_X_Y">520</integer> 12 <integer name="SWITCH_BUTTON_X_Y">500</integer>
13 <integer name="N3DS_BUTTON_Y_X">810</integer> 13 <integer name="SWITCH_BUTTON_Y_X">810</integer>
14 <integer name="N3DS_BUTTON_Y_Y">620</integer> 14 <integer name="SWITCH_BUTTON_Y_Y">610</integer>
15 <integer name="N3DS_BUTTON_UP_X">15</integer> 15 <integer name="SWITCH_STICK_L_X">170</integer>
16 <integer name="N3DS_BUTTON_UP_Y">470</integer> 16 <integer name="SWITCH_STICK_L_Y">740</integer>
17 <integer name="N3DS_TRIGGER_L_X">13</integer> 17 <integer name="SWITCH_STICK_R_X">715</integer>
18 <integer name="N3DS_TRIGGER_L_Y">0</integer> 18 <integer name="SWITCH_STICK_R_Y">740</integer>
19 <integer name="N3DS_BUTTON_ZL_X">13</integer> 19 <integer name="SWITCH_TRIGGER_L_X">13</integer>
20 <integer name="N3DS_BUTTON_ZL_Y">110</integer> 20 <integer name="SWITCH_TRIGGER_L_Y">0</integer>
21 <integer name="N3DS_TRIGGER_R_X">895</integer> 21 <integer name="SWITCH_TRIGGER_R_X">895</integer>
22 <integer name="N3DS_TRIGGER_R_Y">0</integer> 22 <integer name="SWITCH_TRIGGER_R_Y">0</integer>
23 <integer name="N3DS_BUTTON_ZR_X">895</integer> 23 <integer name="SWITCH_TRIGGER_ZL_X">13</integer>
24 <integer name="N3DS_BUTTON_ZR_Y">110</integer> 24 <integer name="SWITCH_TRIGGER_ZL_Y">115</integer>
25 <integer name="N3DS_STICK_C_X">740</integer> 25 <integer name="SWITCH_TRIGGER_ZR_X">895</integer>
26 <integer name="N3DS_STICK_C_Y">770</integer> 26 <integer name="SWITCH_TRIGGER_ZR_Y">115</integer>
27 <integer name="N3DS_STICK_MAIN_X">100</integer> 27 <integer name="SWITCH_BUTTON_MINUS_X">440</integer>
28 <integer name="N3DS_STICK_MAIN_Y">670</integer> 28 <integer name="SWITCH_BUTTON_MINUS_Y">850</integer>
29 <integer name="N3DS_BUTTON_SELECT_X">470</integer> 29 <integer name="SWITCH_BUTTON_PLUS_X">520</integer>
30 <integer name="N3DS_BUTTON_SELECT_Y">850</integer> 30 <integer name="SWITCH_BUTTON_PLUS_Y">850</integer>
31 <integer name="N3DS_BUTTON_START_X">550</integer> 31 <integer name="SWITCH_BUTTON_HOME_X">600</integer>
32 <integer name="N3DS_BUTTON_START_Y">850</integer> 32 <integer name="SWITCH_BUTTON_HOME_Y">890</integer>
33 <integer name="N3DS_BUTTON_HOME_X">450</integer> 33 <integer name="SWITCH_BUTTON_CAPTURE_X">360</integer>
34 <integer name="N3DS_BUTTON_HOME_Y">850</integer> 34 <integer name="SWITCH_BUTTON_CAPTURE_Y">890</integer>
35 35 <integer name="SWITCH_BUTTON_UP_X">35</integer>
36 <!-- Default N3DS portrait layout --> 36 <integer name="SWITCH_BUTTON_UP_Y">480</integer>
37 <integer name="N3DS_BUTTON_A_PORTRAIT_X">810</integer>
38 <integer name="N3DS_BUTTON_A_PORTRAIT_Y">870</integer>
39 <integer name="N3DS_BUTTON_B_PORTRAIT_X">710</integer>
40 <integer name="N3DS_BUTTON_B_PORTRAIT_Y">925</integer>
41 <integer name="N3DS_BUTTON_X_PORTRAIT_X">710</integer>
42 <integer name="N3DS_BUTTON_X_PORTRAIT_Y">815</integer>
43 <integer name="N3DS_BUTTON_Y_PORTRAIT_X">610</integer>
44 <integer name="N3DS_BUTTON_Y_PORTRAIT_Y">870</integer>
45 <integer name="N3DS_BUTTON_UP_PORTRAIT_X">10</integer>
46 <integer name="N3DS_BUTTON_UP_PORTRAIT_Y">680</integer>
47 <integer name="N3DS_TRIGGER_L_PORTRAIT_X">10</integer>
48 <integer name="N3DS_TRIGGER_L_PORTRAIT_Y">0</integer>
49 <integer name="N3DS_BUTTON_ZL_PORTRAIT_X">10</integer>
50 <integer name="N3DS_BUTTON_ZL_PORTRAIT_Y">70</integer>
51 <integer name="N3DS_TRIGGER_R_PORTRAIT_X">810</integer>
52 <integer name="N3DS_TRIGGER_R_PORTRAIT_Y">0</integer>
53 <integer name="N3DS_BUTTON_ZR_PORTRAIT_X">810</integer>
54 <integer name="N3DS_BUTTON_ZR_PORTRAIT_Y">70</integer>
55 <integer name="N3DS_STICK_C_PORTRAIT_X">800</integer>
56 <integer name="N3DS_STICK_C_PORTRAIT_Y">710</integer>
57 <integer name="N3DS_STICK_MAIN_PORTRAIT_X">80</integer>
58 <integer name="N3DS_STICK_MAIN_PORTRAIT_Y">840</integer>
59 <integer name="N3DS_BUTTON_HOME_PORTRAIT_X">360</integer>
60 <integer name="N3DS_BUTTON_HOME_PORTRAIT_Y">794</integer>
61 <integer name="N3DS_BUTTON_SELECT_PORTRAIT_X">400</integer>
62 <integer name="N3DS_BUTTON_SELECT_PORTRAIT_Y">794</integer>
63 <integer name="N3DS_BUTTON_START_PORTRAIT_X">520</integer>
64 <integer name="N3DS_BUTTON_START_PORTRAIT_Y">794</integer>
65 37
66</resources> 38</resources>