Can't return to menu when using SNES controller (without Z button)

Issue #210 resolved
Daniel Weiss created an issue

Original [issue 210](https://code.google.com/p/genplus-gx/issues/detail?id=210) created by danweiss on 2012-03-11T21:10:35.000Z:

I am using a SNES to Gamecube controller adapter. So there is no button that corresponds to the Gamecube Z button. Unfortunately, the emulator requires you to use Z + Arrow to return to the menu, so I don't have any way of returning to the menu without swapping the SNES controller for a Gamecube Controller.

I wish I could remap the "Return to Menu" function to some other button combination, such as L + R.

Comments (12)

  1. Former user Account Deleted
    • changed status to open

    Comment # 1 originally posted by ekeeke31 on 2012-03-12T08:27:10.000Z:

    I will think to a solution that let you remap the menu to any button combo, as some other retro adapters does not have the buttons you might want to use.

  2. Former user Account Deleted

    Comment # 2 originally posted by ekeeke31 on 2012-03-12T11:52:31.000Z:

    Btw, no need to switch controllers in order to enter the menu. Just leave a gamecube controller into port 2 and configure player 2 input to use this controller.

    Also, regarding your adapter, are you sure that SNES select button is not mapped to gamecube Z button as it is usually the case with such adapters ?

  3. Former user Account Deleted

    Comment # 3 originally posted by AaronDoom on 2012-03-20T03:39:28.000Z:

    I have two suggestions about how to make it easier to return to the menu:

    1. Allow multiple controllers to be active at the same time for the same player. For example, player 1 can be controlled by either Gamecube controller 1 or Wiimote 1. However, if you select the Gamecube controller as the input for player 1, the Wiimote stops working for player 1.... Why not allow both to be active at the same time? Then if you're using a controller that doesn't have the MENU key mapped, you can just grab your Wiimote and press the HOME button without having to go into the settings and re-activate the Wiimote as the controller for P1 (the SNES emulator for Wii does it this way).

    2. (this may already be covered by updates you are making) I'd like to map the MENU key to just "Left on the C-Stick" on the Gamecube controller (not a button combination). That's just a lot easier for me (and also how the SNES emulator does it...).

  4. Former user Account Deleted

    Comment # 4 originally posted by ekeeke31 on 2012-03-20T11:46:41.000Z:

    Bad ideas, both:

    1. It would be quite useless, inefficient and unoptimized, basically multiplying the amount of time spent in input update, while also reducing the number of available controllers for other players. If you want to be able to use gc controller menu key, do as i said in previous comment and assign your gc controller to player 2, so that emulator will check for menu key on both controllers.

    2. I don't see how using C-stick would be a good thing for retro adapters and original controller which doesn't have that stick anyway. Maybe if adapter was specifically designed to be compatible with snes9xgx key layout but some might not be and, in any case, C stick is probably mapped already to a key combo on these adapters so it does not change anything.

    Secondly, the more you add as possibilities for user to remap this key, the more you spend time in the emulator checking all possiblities, which is quite unefficient and imo not worth the trouble just because someone does not like having to hold 2 keys simultaneously.

    Finally, C-stick is used to emulate a specific genesis controller so no i'm afraid key combo is the only viable solution for this emulator.

  5. Former user Account Deleted

    Comment # 5 originally posted by AaronDoom on 2012-03-20T18:28:15.000Z:

    Well, I can see how it might be slightly less optimal to be checking two input sources, but what are we talking... some extra milliseconds? Would it be enough to affect FPS? Hm, I notice that the Gamecube pad and the Wiimote are both active when actually in the menu -- just not when in game.

    It would only reduce the number of available controllers if you have it configured that way.... Just like right now, Wiimote 1 is doing absolutely nothing for me, and would only be available for another player if I specifically configured it that way. The same thing would apply.... Wiimote 1 could be configured to P1 (along with Gamecube pad), or it could be configured to P2 when needed.

    I'm not sure what you mean about having the Gamecube pad for P2.... I am using Gamecube pad for P1, and I don't have an extra one to use for P2....

    C-stick is already used for something? What is it, like the Genesis mouse or whatever? Well, it's apparently used for something very uncommon (for what? just a few games?), at the expense of not being available for common use (in hundreds of other games...)? I know it won't let me remap it for anything... so it seems kind of useless now.

    Ok, this is a case-in-point -- this is something that really happened to me, and not just an example for the sake of argument... (and I imagine other people have run into the same issue). When I updated Genesis+GX a while back (when you first mapped the menu to the GC controller key combo) I had no idea how to get back to the menu.... The Wiimote didn't work (disabled as P1 input when GC pad is selected) and nothing I tried on the GC pad worked to access the menu.... If the menu function would have been simply "S-Stick Left," I would have found that and been able to go back to the menu. So, annoyingly, I was stuck in the game with no idea how to get back to the menu.... I had to go look up the controls on wiibrew to find out how. That is extremely user-unfriendly. My thinking is that the c-stick does absolutely nothing for the vast majority of games (and isn't even re-mappable, so it's of no use at all for me), so why not let it return me to the menu?

    Ok, this is just a "for example" that didn't actually happen to me, but say I am using the digital control pad on the GC pad for my movement in a game (and not the analog stick), and I have Z mapped to some action (I must be playing Street Fighter II and need lots of buttons). So now if I move right and press Z to punch at the same time, I will be kicked out of the game to the menu instead of moving right and punching.....

    I just think there are very valid reasons to allow these things, but I know in the end its your project, so it will be how you decide to make it.

  6. Former user Account Deleted

    Comment # 6 originally posted by ekeeke31 on 2012-03-20T20:38:57.000Z:

    1) actual (and future) emulation heavily relies on CPU time (not menu for which it is not important) and I see no reason to add code complexity and potential slowdowns, even a few usec, when unecessary. And to me, it is totally unecessary to have two different controllers mapped to a single player. It seems you only suggested this to be able to use the second controller to return to the menu (unless there is another reason i did not get), which is why i said you could already do this by assigning the second controller to another player, that's it.

    2) Z button was changed to Z + DPAD because a key was missing for emulating MODE button and as far as i know, no games rely on pressing MODE with DPAD so it was fine. Not my fault if people jump on updates without reading the changelog or neglect the user manual I take time to manage when they are stuck ;-)

    As for c-button being a better choice in your opinion, again to me, the simple fact it is required to emulate a supported controller makes it de facto impossible to be the fixed menu key, just like Z button only.

    Which leads to the initial purpose of this issue report which is to be able to remap the menu key so it fits with retro adapters and original controllers. Again, on that matter, c-stick is not naturally mappable to original controllers and might not even supported by adapters.

    As for letting the possibilty to remap the menu to any possible inputs variation, including c-stick (or analog stuff, etc), it would add too much complexity and code overhead than just having to look for a configured button bitmask like i am planning to do, which, i'm pretty confident about that, will deal with most possible user configurations. I also like to think that this emulator is already very configurable in many ways (sometime more than major existing ones) and that people can accept such tiny limitation if it saves CPU time for more important features and better emulation quality...

  7. Former user Account Deleted

    Comment # 7 originally posted by AaronDoom on 2012-03-21T04:46:11.000Z:

    Well, as far as another reason for having two different controllers mapped to P1, it's just a convenience to be able to grab either the Wiimote or the GC pad and start playing without changing options. Sometimes I just grab the Wiimote, and if I start up Genesis+ then I have to get back up and walk across the room (ok, take 3 whole steps! ... but still...) to get the GC pad, otherwise I can't get back to the menu or do anything once I start a game, since the Wiimote is disabled in game....

    Ok, I understand now you meant to keep the P2 controller nearby when you need to call up the menu in case your regular controller doesn't have enough mappable buttons or whatever.... I guess you could assign Wiimote 1 to be Player 2 in that case, when you're using something else for P1.

    Also, I updated my Gen+ via Homebrew Browser, so it didn't come with a manual ;) I imagine lots of other people do it that way as well.

    But I did look through the manual to see what hardware you keep mentioning that uses the c-stick.... It must be the "Activator" thing? It says it requires 2 analog sticks.... Wikipedia says, "The Sega Activator was ranked the third worst video game controller ever made by IGN editor Craig Harris." haha.... My point is... who would want to emulate that, ever (other than for curiosity)? But because it requires the c-stick, you won't let us use the c-stick for anything else? The c-stick is completely free and useless when the Activator is not selected as the input... and... who would ever want to activate the Activator? heh....

    Well, I have two small possible compromise suggestions:

    1. Even when the wiimote is disabled as P1 because another controller is configured as P1, allow the Home button (only) to remain active on the Wiimote.... That way at least people can still get back to the menu and not have to get out of their chair and take 3 steps across the room to get the GC pad so they can get to the menu to de-activate the GC pad :D But I don't know if it would require any less overhead to only check for a single button on another controller as compared to checking the whole controller....

    2. When the Activator is not selected to be emulated, and the GC pad is selected as the input, hard-map the "C-Stick Left" to get back to the menu (don't even need any other direction on the c-stick to be usable).... Or even make the combo button "d-pad + c-stick" just for the reason that the c-stick isn't used at all (unless emulating the Activator), while Z + d-pad might possibly be used in a game, if configured that way and someone prefers the d-pad to the analog on the CG pad. That would not even get in the way of using the c-stick for the Activator, since it's a combo press. Of course, that still doesn't help people using the SNES pad adapter, but they can't use the Z button either.... Suggestion comment 1\. might be better in that case, or just map Wiimote 1 to P2 to access the menu, as discussed before. Or whatever it is that you're planning on doing to address the issue....

  8. Former user Account Deleted

    Comment # 10 originally posted by ekeeke31 on 2012-03-21T12:33:13.000Z:

    What I can do is:

    1) move HOME button detection out of wii specific controller update functions and only do it once, so it will be checked even if a gamecube controller is configured as input.

    2) in gamecube controller specific function, always check c-stick as menu key when activator is not used then also check user configurable buttons combo.

    This adds two checks when you use a gamecube controller on Wii but seems to be a good tradeof between code complexity and usability, as well as dealing with specific user setup.

  9. Former user Account Deleted

    Comment # 11 originally posted by AaronDoom on 2012-03-21T16:27:43.000Z:

    Excellent, thanks!

    By the way, I've always liked the reference of your username -- Landstalker is one of my favorite Genesis games ;)

  10. Former user Account Deleted

    Comment # 13 originally posted by ekeeke31 on 2012-06-06T20:14:38.000Z:

    issue \#226 has been merged into this issue.

  11. Former user Account Deleted

    Comment # 14 originally posted by ekeeke31 on 2012-06-06T20:28:26.000Z:

    issue \#226 has been merged into this issue.

  12. Log in to comment