Back in the day when I was using an ArcadeVGA (with its special ATI drivers) to drive my arcade monitor, I had to run a tool called AVRes to generate ini files for every game in MAME that included the target resolution as well as other settings like triplebuffer.
GroovyMAME calculates optimal resolutions and MAME settings
on the fly when you run the game so there's no need for a separate tool to generate ini files for each game.
CRT_EmuDriver are just modified ATI/AMD video drivers that allow supported off-the-shelf ATI/AMD video cards to output 15KHz resolutions for arcade monitors.
When you first install CRT_EmuDriver, you need to run the VMMaker tool to parse the MAME xml output and generate a list of optimal resolutions that are installed into the Windows registry. When you launch a game in GroovyMAME, it will determine the optimal settings based on the available resolutions.
My previous GroovyMAME setup was Windows XP x64 Edition with CRT_EmuDriver and an ATI Radeon X600 XT. I also experimented briefly with an ATI Radeon HD 4550 but I liked the X600 XT better.
My current setup is Windows 7 64-bit with CRT_EmuDriver 2.0 and an AMD Radeon HD 7750 and so far, I don't have any complaints.
Here's the page for CRT_EmuDriver 2.0...
http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=295Unfortunately, I don't know anything about Retroarch.