Yes, keyboards work too. (try pressing left - right (or the keys mapped to left and right) on your keyboard instead of O - K)
Not exactly, MAME is looking for "O or L Arrow or Joystick X-" and "K or R Arrow or Joystick X+", so if your keyboard hack uses "Y" for Left and "G" for right, you won't be able to get past this screen. You can avoid this without recompiling by reassigning keys: I found my old notes for it here:
http://www.mameworld.net/emuadvice/ok.docPosted by: daywane Posted on: Today at 03:10:41am
I have mame 32. we have noticed some mame 32's, down loaded , let you play the game with out hitting "OK" . After the first time playing. You must hit "ok" the first time , but never again after this...
I just lucked out and this was the first mame I down loaded.
I think this is a bug in all MAME's (not MAME32). It's on MAMETESTERS. With certain (particularly GRAVIS) gamepads and joysticks, MAME will skip the startup screens.
BTW, to compile your own without nag screens, follow these changes (both 0.61 and previous versions) stolen from the Mameworld compile board:
I've been following these instructions in order to remove mame nags screens. But with 61, somethings seems to be changed.
Open up mame.c and edit line 1195: if (settingsloaded == 0) and change it to: if (0). In line 1202: if (showgamewarnings(real_scrbitmap) == 0) change it to: if (1).
Now, the most similar lines are
502 -> if (settingsloaded || showcopyright(artwork_get_ui_bitmap()) == 0) I change it to if (0)
505 -> if (showgamewarnings(artwork_get_ui_bitmap()) == 0) I change it to if (1)
However, after compiling (with no errors), mame don't work. Do you have the same problem?
Here you go!
502 -> if (settingsloaded || showcopyright(artwork_get_ui_bitmap()) == 0) I change it to if (1)
505 -> if (showgamewarnings(artwork_get_ui_bitmap()) == 0) I change it to if (1)
These are the correct changes try
them and recompile if it still doesn't
work then delete your obj-directory and
start from a clean build.
Good Luck
Rodney
In my custom compile, I also remove the "Bad or missing rom, Press any Key" screens as follows: (Data provided by Ciro of Emuloader) (Some of the code has changed since he sent this, but you should still be able to figure it out.
I discover where you can avoid that message (not only "No Good Dump Known",
but "bad CRC" and "bad Size" as well).
Follow these steps:
1. Make a backup copy of the file "mame\src\common.c"
2. Open the file "mame\src\common.c"
3. Go to the line 880 (not sure if this is the exact line)
You will see this function:
......
/*-------------------------------------------------
display_rom_load_results - display the final
results of ROM loading
-------------------------------------------------*/
static int display_rom_load_results(struct rom_load_data *romdata)
......
4. Comment this "IF" sequence (everything, including the " } " character on
the end of it)
The commentary characters are:
- to open the commentary use : " /* " (without the quotes)
- to close the commentary use: " */ " (without the quotes)
...........................
/* if we're not getting out of here, wait for a keypress */
if (!options.gui_host && !bailing)
{
int k;
/* loop until we get one */
printf ("Press any key to continue\n");
do
{
k = code_read_async();
}
while (k == CODE_NONE || k == KEYCODE_LCONTROL);
/* bail on a control + C */
if (keyboard_pressed(KEYCODE_LCONTROL) && keyboard_pressed(KEYCODE_C))
return 1;
}
............................
5. Delete these two commented lines from the "IF" statement or the compiler
will generate an error...
/* loop until we get one */
/* bail on a control + C */
6. Save the file and re-compile MAME...
That's it!!! 
PS: Always keep the .o (object files). If you change only one file, you will
not need to wait for all the compilation to be over...
In the compilation folder, just delete the file "common.o" from "mame.obj"
folder (this folder can be different for other types of compilation, mine is
"mameppro.obj" because I use the Pentium optimized compilation)
so it will recompile only the "common.c" file and you will not need to wait
too long... 
Hope this helps