From 50b44fa337681987b0116eab3ba4ef7d15562233 Mon Sep 17 00:00:00 2001 From: Sean Maas Date: Wed, 21 Sep 2016 23:03:32 -0400 Subject: [PATCH] Android: More on-screen buttons GameCube now has a c-stick. For Wii games, there is now a Wiimote + Nunchuk setup. --- .../app/src/main/assets/WiimoteNew.ini | 2 +- .../activities/EmulationActivity.java | 9 +++ .../dolphinemu/overlay/InputOverlay.java | 55 +++++++++++++----- .../{gcpad_dpad.png => gcwii_dpad.png} | Bin ...{gcpad_joystick.png => gcwii_joystick.png} | Bin ...pressed.png => gcwii_joystick_pressed.png} | Bin ...ick_range.png => gcwii_joystick_range.png} | Bin .../{gcpad_dpad.png => gcwii_dpad.png} | Bin ...{gcpad_joystick.png => gcwii_joystick.png} | Bin ...pressed.png => gcwii_joystick_pressed.png} | Bin ...ick_range.png => gcwii_joystick_range.png} | Bin .../{gcpad_dpad.png => gcwii_dpad.png} | Bin ...{gcpad_joystick.png => gcwii_joystick.png} | Bin ...pressed.png => gcwii_joystick_pressed.png} | Bin ...ick_range.png => gcwii_joystick_range.png} | Bin .../{gcpad_dpad.png => gcwii_dpad.png} | Bin ...{gcpad_joystick.png => gcwii_joystick.png} | Bin ...pressed.png => gcwii_joystick_pressed.png} | Bin ...ick_range.png => gcwii_joystick_range.png} | Bin 19 files changed, 51 insertions(+), 15 deletions(-) rename Source/Android/app/src/main/res/drawable-hdpi/{gcpad_dpad.png => gcwii_dpad.png} (100%) rename Source/Android/app/src/main/res/drawable-hdpi/{gcpad_joystick.png => gcwii_joystick.png} (100%) rename Source/Android/app/src/main/res/drawable-hdpi/{gcpad_joystick_pressed.png => gcwii_joystick_pressed.png} (100%) rename Source/Android/app/src/main/res/drawable-hdpi/{gcpad_joystick_range.png => gcwii_joystick_range.png} (100%) rename Source/Android/app/src/main/res/drawable-xhdpi/{gcpad_dpad.png => gcwii_dpad.png} (100%) rename Source/Android/app/src/main/res/drawable-xhdpi/{gcpad_joystick.png => gcwii_joystick.png} (100%) rename Source/Android/app/src/main/res/drawable-xhdpi/{gcpad_joystick_pressed.png => gcwii_joystick_pressed.png} (100%) rename Source/Android/app/src/main/res/drawable-xhdpi/{gcpad_joystick_range.png => gcwii_joystick_range.png} (100%) rename Source/Android/app/src/main/res/drawable-xxhdpi/{gcpad_dpad.png => gcwii_dpad.png} (100%) rename Source/Android/app/src/main/res/drawable-xxhdpi/{gcpad_joystick.png => gcwii_joystick.png} (100%) rename Source/Android/app/src/main/res/drawable-xxhdpi/{gcpad_joystick_pressed.png => gcwii_joystick_pressed.png} (100%) rename Source/Android/app/src/main/res/drawable-xxhdpi/{gcpad_joystick_range.png => gcwii_joystick_range.png} (100%) rename Source/Android/app/src/main/res/drawable-xxxhdpi/{gcpad_dpad.png => gcwii_dpad.png} (100%) rename Source/Android/app/src/main/res/drawable-xxxhdpi/{gcpad_joystick.png => gcwii_joystick.png} (100%) rename Source/Android/app/src/main/res/drawable-xxxhdpi/{gcpad_joystick_pressed.png => gcwii_joystick_pressed.png} (100%) rename Source/Android/app/src/main/res/drawable-xxxhdpi/{gcpad_joystick_range.png => gcwii_joystick_range.png} (100%) diff --git a/Source/Android/app/src/main/assets/WiimoteNew.ini b/Source/Android/app/src/main/assets/WiimoteNew.ini index abead1e196..9fcbad5130 100644 --- a/Source/Android/app/src/main/assets/WiimoteNew.ini +++ b/Source/Android/app/src/main/assets/WiimoteNew.ini @@ -33,7 +33,7 @@ Tilt/Modifier/Range = 50,000000 Shake/X = `Button 132` Shake/Y = `Button 133` Shake/Z = `Button 134` -Extension = None +Extension = Nunchuk Nunchuk/Buttons/C = `Button 200` Nunchuk/Buttons/Z = `Button 201` Nunchuk/Stick/Up = `Axis 203` diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index 822b41b11d..7ac735e7d9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -55,6 +55,8 @@ public final class EmulationActivity extends AppCompatActivity private boolean mSystemUiVisible; private boolean mMenuVisible; + private static boolean mIsGameCubeGame; + /** * Handlers are a way to pass a message to an Activity telling it to do something * on the UI thread. This Handler responds to any message, even blank ones, by @@ -209,6 +211,8 @@ public final class EmulationActivity extends AppCompatActivity menuFragment.setTitleText(mSelectedTitle); } } + + mIsGameCubeGame = (NativeLibrary.GetPlatform(path) == 0); } @Override @@ -667,6 +671,11 @@ public final class EmulationActivity extends AppCompatActivity return mSelectedTitle; } + public static boolean isGameCubeGame() + { + return mIsGameCubeGame; + } + public static void launch(Activity activity, String path, String title, String screenshotPath, int position, View sharedView) { Intent launcher = new Intent(activity, EmulationActivity.class); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java index dea5b9214d..b37343d128 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java @@ -26,6 +26,7 @@ import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.NativeLibrary.ButtonState; import org.dolphinemu.dolphinemu.NativeLibrary.ButtonType; import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.activities.EmulationActivity; import java.util.HashSet; import java.util.Set; @@ -78,20 +79,46 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener super(context, attrs); // Add all the overlay items to the HashSet. - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_a, ButtonType.BUTTON_A)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_b, ButtonType.BUTTON_B)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_x, ButtonType.BUTTON_X)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_y, ButtonType.BUTTON_Y)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_z, ButtonType.BUTTON_Z)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_start, ButtonType.BUTTON_START)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_l, ButtonType.TRIGGER_L)); - overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_r, ButtonType.TRIGGER_R)); - overlayDpads.add(initializeOverlayDpad(context, R.drawable.gcpad_dpad, - ButtonType.BUTTON_UP, ButtonType.BUTTON_DOWN, - ButtonType.BUTTON_LEFT, ButtonType.BUTTON_RIGHT)); - overlayJoysticks.add(initializeOverlayJoystick(context, - R.drawable.gcpad_joystick_range, R.drawable.gcpad_joystick, - ButtonType.STICK_MAIN)); + if (EmulationActivity.isGameCubeGame()) + { + // GameCube + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_a, ButtonType.BUTTON_A)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_b, ButtonType.BUTTON_B)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_x, ButtonType.BUTTON_X)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_y, ButtonType.BUTTON_Y)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_z, ButtonType.BUTTON_Z)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_start, ButtonType.BUTTON_START)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_l, ButtonType.TRIGGER_L)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.gcpad_r, ButtonType.TRIGGER_R)); + overlayDpads.add(initializeOverlayDpad(context, R.drawable.gcwii_dpad, + ButtonType.BUTTON_UP, ButtonType.BUTTON_DOWN, + ButtonType.BUTTON_LEFT, ButtonType.BUTTON_RIGHT)); + overlayJoysticks.add(initializeOverlayJoystick(context, + R.drawable.gcwii_joystick_range, R.drawable.gcwii_joystick, + ButtonType.STICK_MAIN)); + overlayJoysticks.add(initializeOverlayJoystick(context, + R.drawable.gcwii_joystick_range, R.drawable.gcpad_c, + ButtonType.STICK_C)); + } + else + { + // Wiimote + Nunchuk + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_a, ButtonType.WIIMOTE_BUTTON_A)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_b, ButtonType.WIIMOTE_BUTTON_B)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_one, ButtonType.WIIMOTE_BUTTON_1)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_two, ButtonType.WIIMOTE_BUTTON_2)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_plus, ButtonType.WIIMOTE_BUTTON_PLUS)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_minus, ButtonType.WIIMOTE_BUTTON_MINUS)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.wiimote_home, ButtonType.WIIMOTE_BUTTON_HOME)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.nunchuk_c, ButtonType.NUNCHUK_BUTTON_C)); + overlayButtons.add(initializeOverlayButton(context, R.drawable.nunchuk_z, ButtonType.NUNCHUK_BUTTON_Z)); + overlayDpads.add(initializeOverlayDpad(context, R.drawable.gcwii_dpad, + ButtonType.WIIMOTE_UP, ButtonType.WIIMOTE_DOWN, + ButtonType.WIIMOTE_LEFT, ButtonType.WIIMOTE_RIGHT)); + overlayJoysticks.add(initializeOverlayJoystick(context, + R.drawable.gcwii_joystick_range, R.drawable.gcwii_joystick, + ButtonType.NUNCHUK_STICK)); + } // Set the on touch listener. setOnTouchListener(this); diff --git a/Source/Android/app/src/main/res/drawable-hdpi/gcpad_dpad.png b/Source/Android/app/src/main/res/drawable-hdpi/gcwii_dpad.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-hdpi/gcpad_dpad.png rename to Source/Android/app/src/main/res/drawable-hdpi/gcwii_dpad.png diff --git a/Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick.png b/Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick.png rename to Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick.png diff --git a/Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick_pressed.png b/Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick_pressed.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick_pressed.png rename to Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick_pressed.png diff --git a/Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick_range.png b/Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick_range.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-hdpi/gcpad_joystick_range.png rename to Source/Android/app/src/main/res/drawable-hdpi/gcwii_joystick_range.png diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/gcpad_dpad.png b/Source/Android/app/src/main/res/drawable-xhdpi/gcwii_dpad.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xhdpi/gcpad_dpad.png rename to Source/Android/app/src/main/res/drawable-xhdpi/gcwii_dpad.png diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick.png b/Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick.png rename to Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick.png diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick_pressed.png b/Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick_pressed.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick_pressed.png rename to Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick_pressed.png diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick_range.png b/Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick_range.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xhdpi/gcpad_joystick_range.png rename to Source/Android/app/src/main/res/drawable-xhdpi/gcwii_joystick_range.png diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_dpad.png b/Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_dpad.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_dpad.png rename to Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_dpad.png diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick.png b/Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick.png rename to Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick.png diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick_pressed.png b/Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick_pressed.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick_pressed.png rename to Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick_pressed.png diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick_range.png b/Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick_range.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxhdpi/gcpad_joystick_range.png rename to Source/Android/app/src/main/res/drawable-xxhdpi/gcwii_joystick_range.png diff --git a/Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_dpad.png b/Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_dpad.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_dpad.png rename to Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_dpad.png diff --git a/Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick.png b/Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick.png rename to Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick.png diff --git a/Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick_pressed.png b/Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick_pressed.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick_pressed.png rename to Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick_pressed.png diff --git a/Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick_range.png b/Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick_range.png similarity index 100% rename from Source/Android/app/src/main/res/drawable-xxxhdpi/gcpad_joystick_range.png rename to Source/Android/app/src/main/res/drawable-xxxhdpi/gcwii_joystick_range.png