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
Android: Reimplement input binding #4410
Conversation
|
|
||
| sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_rumble, R.string.gc_adapter_rumble_description, false, rumble)); | ||
| sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_bongos, R.string.gc_adapter_bongos_description, false, bongos)); | ||
| private void addExtensionSubSettings(ArrayList<SettingsItem> sl, int wiimoteNumber, int extentionType) |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
|
@sigmabeta Do you want to help me with reviewing? |
|
I can take a look later tonight. |
| SettingsFile.SECTION_BINDINGS, SettingsFile.KEY_WIIMOTE_EXTENSION + i, "0")); | ||
| String extension; | ||
|
|
||
| switch (extensionValue) |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
| { | ||
| Setting rumble = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber); | ||
| Setting bongos = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber); | ||
| Setting extension = mSettings.get(SettingsFile.SECTION_BINDINGS).getSetting(SettingsFile.KEY_WIIMOTE_EXTENSION + (wiimoteNumber - 3)); |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
| Setting bindDPadLeft = mSettings.get(SettingsFile.SECTION_BINDINGS).getSetting(SettingsFile.KEY_WIIBIND_DPAD_LEFT + wiimoteNumber); | ||
| Setting bindDPadRight = mSettings.get(SettingsFile.SECTION_BINDINGS).getSetting(SettingsFile.KEY_WIIBIND_DPAD_RIGHT + wiimoteNumber); | ||
|
|
||
| sl.add(new SingleChoiceSetting(SettingsFile.KEY_WIIMOTE_EXTENSION + (wiimoteNumber - 3), SettingsFile.SECTION_BINDINGS, R.string.wiimote_extensions, R.string.wiimote_extensions_descrip, R.array.wiimoteExtensionsEntries, R.array.wiimoteExtensionsValues, 0, extension)); |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
|
Rebased and removed the hacky stuff, everything should be working fine now. |
|
I have discovered a problem. If you bind the controls the first time everything works, but if you bind them again you have to bind every control again or the controls that you did not rebind do not function. There should also be a way to unbind the controls with a controller because currently you either need a mouse or a touchscreen to do so. A good way to accomplish this would be for the user to hold down the selection to unbind. Thanks for your hard work on dolphin! |
|
@SeannyM We really need more for the progress report! Does it need review? Is this ready for merging? |
|
@Brotanium good catch, I fixed the issue. Regarding unbinding via controller, it's something I can look into sometime in the future; at some point I'd like to design a better UI for this anyways, because right now using the same UI as the rest of the settings means there is a lot of scrolling. @MaJoRoesch if nobody else has any issues with this, it's good to go. |
|
Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java, line 26 at r2 (raw file):
Can we name this something else? 'item' isn't particularly descriptive of what this is for even if the code it's used in is simple. Comments from Reviewable |
|
Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java, line 26 at r2 (raw file): Previously, Helios747 (Anthony) wrote…> Can we name this something else? 'item' isn't particularly descriptive of what this is for even if the code it's used in is simple.Comments from Reviewable |
Also update MotionAlertDialog to work with the new setting, and remove the old InputBindingPreference.
|
Reviewed 3 of 16 files at r1, 11 of 12 files at r2, 1 of 1 files at r3. Comments from Reviewable |
|
@SeannyM Tested. I ran into a critical issue. The controller presses are still being picked up by the UI even when in game! When I press B on the controller in order to press a button in game, it backs out of the game and back to the UI. I can't use my controller at all! Device - LETV phone that runs super slowly but without errors |
|
Aaaand it's already merged. Ok, well. One last comment. This is probably outside the scope of this PR, but there isn't any way to put in L/R analog. Many games use them as separate buttons (rogue leader, super mario sunshine), or require pressing analog before digital will be accepted (metroid prime). So it's important for it to have mappable analog L/R separate from the digital L/R. |
|
@MaJoRoesch regarding the UI input issue, I can't reproduce it on my end. Can you check to make sure the bindings are saved? IIRC, someone else had the same issue and it turned out they were using the 'X' to close the settings, which actually exits without saving. To save the settings, you have to back out of the settings fully without using the 'X'. If this isn't the problem, my only guess would be maybe focus isn't being given to the emulation activity? |
|
I went back to check at the time, and it was still bound. And I just rechecked it, and the settings were all still there, and it said the settings were saved to ini. And I literally turned on the phone, and ran Dolphin, so there is absolutely nothing else going on! EDIT: Me and HdkR did some testing, and it seems to be the 8bitdo controller. Apparently it's sending the B button and the back command at the same time. So the configuration detects the button, and the emulator detects the back command. Yuck. |
|
Perhaps we should prevent the back button from exiting emulation, and instead put an exit button in the dropdown menu? Or at least an option to disable the back button. This would also help prevent accidental exits. |
|
Make sure to only do this on touchscreen devices though. |
|
So I tested again to see if I could get multiplayer working and the unbinding problem persists making multiplayer impossible since it unbinds when setting another controller. I then tried to rebind a single controller and all the other controls unbinding when done. Another thing to note a new Panic Alert occurs now which says "Panic Alert: IOS HLE: Couldn't get an absolute path; the root directory will be returned. This will most likely lead to failures.". I am not sure if this is related to anything done but I was just wondering. Thanks. |
|
@Brotanium I broke IOS HLE in 5.0-1339 except on Windows, so many Wii games don't work right now. A fix is in progress. |
|
@Brotanium I just tested, and I can map multiple controllers at once without a problem. I'm not sure why it wouldn't be working for you. You're getting the toast message saying the settings are saved, right? It should show up after you leave the settings and return to the game list. |
|
After uninstalling dolphin then reinstalling it GameCube controller work
fine with no unbinding problems but Wii games say the Wii remotes are
disconnected by emulating software so I cannot test if the unbinding
problem persists.
…On Nov 27, 2016 4:37 PM, "Sean Maas" ***@***.***> wrote:
@Brotanium <https://github.com/Brotanium> I just tested, and I can map
multiple controllers at once without a problem. I'm not sure why it
wouldn't be working for you. You're getting the toast message saying the
settings are saved, right? It should show up after you leave the settings
and return to the game list.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4410 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AP4xhjQiMmONOjeprMThj6AzpyWsiNitks5rCfgDgaJpZM4KkjD4>
.
|
I fixed up the old stuff to make it work with the new settings UI. Functionally, everything is as it was before, plus a new clear button to remove bindings. I changed the strings to match the desktop UI, which was also convenient because it lead to less strings. :)
Here's a screenshot just because:

(^ When you map a real Wiimote to an emulated one because you don't have a DolphinBar :P)
This change is