EmulatorArchive / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
1 stars 0 forks source link

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

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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.

Original issue reported on code.google.com by danwe...@gmail.com on 11 Mar 2012 at 9:10

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 12 Mar 2012 at 8:27

GoogleCodeExporter commented 9 years ago
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 ?

Original comment by ekeeke31@gmail.com on 12 Mar 2012 at 11:52

GoogleCodeExporter commented 9 years ago
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...).

Original comment by AaronD...@gmail.com on 20 Mar 2012 at 3:39

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 20 Mar 2012 at 11:46

GoogleCodeExporter commented 9 years ago
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.

Original comment by AaronD...@gmail.com on 20 Mar 2012 at 6:28

GoogleCodeExporter commented 9 years ago
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...

Original comment by ekeeke31@gmail.com on 20 Mar 2012 at 8:38

GoogleCodeExporter commented 9 years ago
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 #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....

Original comment by AaronD...@gmail.com on 21 Mar 2012 at 4:46

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 21 Mar 2012 at 12:33

GoogleCodeExporter commented 9 years ago
Excellent, thanks!

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

Original comment by AaronD...@gmail.com on 21 Mar 2012 at 4:27

GoogleCodeExporter commented 9 years ago
Added in r670

Original comment by ekeeke31@gmail.com on 7 Apr 2012 at 5:19

GoogleCodeExporter commented 9 years ago
Issue 226 has been merged into this issue.

Original comment by ekeeke31@gmail.com on 6 Jun 2012 at 8:14

GoogleCodeExporter commented 9 years ago
Issue 226 has been merged into this issue.

Original comment by ekeeke31@gmail.com on 6 Jun 2012 at 8:28