Yeah, so, the Pi. The interface on Emulation Station is fine on a console-like setup, but I don't like it on cabinets. I've yet to find a theme that works well in 4:3 setups. They take forever to boot up. Unless you spend tons of time on customization, they've got lots of ugly loading screens. Pre-made images have lots of stupid problems like misspelled words, thousands of crap games, and long lists of stuff like, "Pac-Man ROM Hack Europe ver 1.30 (Midway)" clunking up the screens.
You nailed it. I haven't seen a 4:3 image that is even remotely good which has led me down the path of trying to make my own... and it is driving me crazy. I don't know how to load a custom theme (assuming I even knew how to make one). I also don't really know the difference between each of the MAME emulators (that are sort of combined into one "arcade" folder). I'm pretty sure there's no one size fits all setting and I'll have to individually configure each game to run with the proper emulator, map the proper buttons, etc.
I have figured out how to remove the boot screens as well as the text/code and raspberry pi logo on boot up. That's about it though! What I also don't like is that there is a second layer of "folders" in Emulation Station meaning, I can boot to a gamelist, which is great, and exiting a game brings me back to that gamelist, which is also great, but exiting again brings you up another level to console emulators (which I don't want/need) as well as the general Raspiconfig menu which I definitely don't want because things will get messed up. The whole thing is clunky and was obviously made to play as many games as possible but there were absolutely no design/functionality considerations.
If you use MAME4All instead of one of the lr emulators then the control settings for MAME are entirely separate from those for the Emulationstation UI.
I'm currently building a Pi Zero based Bar stick, and I am setting it up as follows:
For MAME, configure controls as normal. Quit button is a separate button mounted on the cabinet.
For Retropie itself I am only configuring up, down and button A.
There is a second admin button round the back of the cabinet that I will map as 'start'.
All other buttons will be skipped during configuration.
When I quit a game in MAME, it will take me back to the game list. I won't be able to back out of the game list, because none of the buttons will be mapped to the B button.
When I want to shut down, I will press the 'start' button on the rear of the cab, and use the joystick and the A button to select shut down from the menu.
It is also possible to add a safe shutdown button to the Pi using the GPIO ports.
I'm not going to do it this way, because I want to keep the cabinet as modular as possible to make future upgrades easy.
The idea is that I can keep upgrading the Pi as and when new models are released. This will be a lot easier if everything is done through the encoders rather than modifying the Pi itself.