diff options
| author | 2023-02-13 12:56:16 -0600 | |
|---|---|---|
| committer | 2023-06-03 00:05:30 -0700 | |
| commit | 43e43021a328bf93585f2140703d3e15cc37bdeb (patch) | |
| tree | 7b1f794d5aba0903995576ecfbfbaf11e0546f04 | |
| parent | android: Apply clang format (diff) | |
| download | yuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.tar.gz yuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.tar.xz yuzu-43e43021a328bf93585f2140703d3e15cc37bdeb.zip | |
android: Add all buttons to screen controller
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> |