Hi!
I used this one for my first arcade controller with retropie and it works great (i play only arcade games, but i guess with other systeme, it'll work too)
http://groovygamegear.com/webstore/index.php?main_page=product_info&cPath=76_80&products_id=303
And i think an Arduino Leonardo can emulate keyboard input...