For software, I wanted a front end that was simple, ran MAME and other emulators if I so chose. I did so choose and found GameLauncher. I am running MAME (arcade games), Daphne (laserdisc games) and Stella (Atari 2600) cleanly. I am working on getting Visual Pinball to work correctly and MESS for Colecovision and Nintendo Enterntainment System (NES).
There are many excellent front-ends out there, but GameLauncher was my favorite (for my needs).
Here is the .ini file I used for MAME when launching in command line under Windows XP. This worked best with my particular system configuration. Notice D3D is not enabled.
The O/S is Windows XP Pro to enable the use of USB ports. Much easier for the IPAC and OptiPAC. If you use Windows 9x or a DOS O/S, you will have a much tougher time with USB.
Update 1: I upgraded the front-end to Hyperspin (v1.2) and MAME to v0.134. Stella, Nestopia and Daphne all work perfectly now. The operating system is now Windows 7 Ultimate.
Update 2: I upgraded the front-end to Hyperspin (v1.2) and MAME to v0.171, using MAEUIFX to save HIgh Scores. Stella, Nestopia and Daphne all work perfectly now. The operating system is now Windows 10 Pro.
Update 3: Upgraded to MAME v0.190. MAME now has a plugin you can enable to save hiscores in some games (not all games). No more need for MAMEUIFX. Hyperspin is now v22.214.171.124. MAMEHooker is used for the Q*Bert knocker.