This function will become your best friend. User-defined controls are in Verge just to cater to your needs.
Here are some reasons why I think the default controls are fine:
ENTER - The enter button is close to the directional keys, making it easy to reach. It's a large button. Think of how many times you type in search in a search engine and hit Enter, rather than clicking OK or something. However, enter probably doesn't have much use outside of the 'OK' button.
ALT - Alt makes a nice key, as long as you *never* have to hit it in conjuction with any of the other default buttons, because that causes bad things like fullscreen toggling, window options or start menus to come up. Alt is a nice key, despite the fact when used in combination with the other keys it executes a Windows Key Shortcut. Alt is close to both Space and Enter (fortunately and unfortunately), and feels considerably nicer to hit continuously than CTRL. I don't know, it makes a good cancel button anyway.
ESC - Escape is a nice small button out of the way. Escape makes a great quit buttton to escape the program, as the name implies
SPACE - Space is a huge button. It also finds a nice use as a menu, a jump button.
However, I'd rather have console type key setup:
Z - Cancel
X - OK
A - Snes 'X' button / Start
S - Snes 'Y' button / Select
Q - Left shoulder key.
W - Right shoulder key.
The caveat of console key setups is that if you ever have naming dialogues, now you can't just use the modern keyboard typing to input if you also want to have the old-school method of hitting OK and CANCEL and move the cursors, because OK and CANCEL would be a likely be letter keys. I guess you could temporarily not use the b1 - b4 in your code to avoid the keyboard conflicts, but then gamepad users sadly have to put down the controller and use the keyboard.
Also, in my opinion there's
no such thing as horrible controls. You just have to adapt a little bit. Although I admit some games have had awesome easy-to-master controls, take Viewtiful Joe for Gamecube for instance. When games actually do have crappy controls, it's not where the buttons are mapped, it's the actual response to your input.