Would it be feasible to reprogram the chip to use the highest 8 buttons for modeswitching?
That would eliminate the button numbering confusion between "normal" and "constant programming" modes, for the lower numbered buttons.
My 25 cents -
Quick point - be aware that this new mod means that if someone somehow holds down the mode switch when they turn on the cabinet, buttons 1 through 8 won't work until they re-boot, and RandyT will probably get a lot of "What Happened" questions.
I think it would be nice to have the GP-Wiz set up so that CP Button 1 was seen by Windows as Gamepad Button 1. This wouldn't matter at all for MAME, but I think other applications might be picky about having Joystick Button 14 do an action and Joystick button 1 unused. I'm sure RandyT has a lot of experience with this from the GP-Wiz (pre-49) testing and can probably confirm or disprove this.
Also, note that my comments below on software switching also would apply to using a rotary switch as far as the GP-Wiz49 is concerned.
I think RandyT's solution of a mode button combined with the arcade buttons is excellent for those who DON'T want to bother with software to switch the sticks, and I think Randy knows from the KeyWiz support questions that there will probably be a lot of those. I also think a lot of people want the software switching (or rotary switch) option. I don't know which group is more prevalent, but I think most users will fall into one of the two camps and will know which one they belong in. I.e., it is unlikely that someone will set their panel up for manual switching and then decide that they really would rather use software, or plan to set their panel up for software switching and then decide they would rather use manual switching. Of course, some of this depends on how soon the FE developer's add support for this, and how easy they make it to implement.
So I see three possible solutions (Note that Pin below refers to the functional not the physical input, as I don't have a GP-Wiz49 pinout, and it would probably just confuse things if I did):
Option 1 - Pins 1 through 8 correspond to buttons 1 through 8 in manual mode. In software mode (or with the joymode grounded), Pins 9 through 23 shift down and are seen as Buttons 1 through 15. I like this idea, but I tend to have less problems with complex solutions. Advantage is that this works optimally for all users.
Option 2 - Pins 1 though 23 stay as buttons 1 through 23 regardless of the mode selected. This is easier to wire up and great for manual switching, however, for software switching (or with a mode switch), it means that you have to use Button 9 as your button 1 in a game. (Kinda awkward for MAME and maybe bad for other games).
Option 3 - Pins 1 through 23 stay as buttons 1 through 23 regardless of the mode selected, but buttons 16-23 are used to switch modes (NoOne's suggestion). This is basically the reverse of option 2 above, works great for software or rotary switch switching, but for manual switching, it means that you have to use Button 16 as Button 1 in your game (or have unused game buttons dedicated for mode switching). (Kinda awkware for MAME and maybe bad for other games).
Thoughts, comments?