19 January 2017

QMC Alternative: Attract Mode for OSX MAME - Setup, Part 1

Updated September 2018
This is huge, but needs work during setup. If you are willing to spend the time, it's probably the best MAME frontend around. 

If you are ready for manual text edits, this is what you get:
- best layouts in town with video previews that are compatible with the Retropie Attract Mode layouts
- game settings at ROM level
- very flexible and rather intuitive joypad control
- leave your current MAME/QMC2 installation unchanged and play with identical versions in this frontend
- fast at startup
- very accessible text configuration files

Since all of the following has been trial & error, I start with setup instructions from scratch.

1. Download and install Attract Mode for OSXhttp://attractmode.org/download.html - now at version 2.4.1 it is rock solid under OSX and in par with other Operating Systems

2. Start Attract Mode -> Attract Mode directory is created here:
[$HOME -> this is the home directory of your user in Attract Mode terms]/.attract

Note: You will only see this directory if you have enabled 'Show Hidden Files' (with a tool such as Deeper, otherwise you will not see this directory in your Finder!) 
Remember for all further configuration: $HOME stands for your Mac User home directory, this saves you a lot of time and remains portable to other users 
This is the directory where most of your customization happens! Do not touch the directories of your Attract Mode Program (via 'Show Package Contents'), since this will be overwritten with a program update.
3. Enter Attract Mode Configuration: TAB

4. Configure Joypad/Keyboard Control: Attract Mode is very much joypad-focused. Similar to Retroarch, you should configure your Joypad that early, then you are better off later. Hint: If the joypad configuration does not fit you, remove default joypad functions first, move via keyboard to them and add the appropriate joypad buttons by hitting them. Works quite intuitively. As long as you have a keyboard attached, trying out joypad configs is nice and easy.

Recommended Minimum Configuration at Startup:
Back/Up/Down/Left/Right/Select - these six lines are of course the most important ones
Displays Menu - brings you back to the very first screen, i.e. the one above MAME, so that you can head for the Attract Mode menu or other emulators
Previous Filter/Next Filter - important in a huge romset like MAME for configuring your Favourites and other filters (e.g. easy jump between full romset and Favourites) 
Configure - I very much recommend that you additionally bind the Config menu to a Joypad key, so that you can enter configuration without hitting TAB (but leave TAB intact)
Add/Remove Favourite - here I go for F on the keyboard
Edit Game - here I go for E on the keyboard (editing in a separate post)
 5. Config/General: Before starting with Layouts and Displays, it is a good idea to look into the General Configuration options:
  • Look for a smaller font: Control/General/Default Font -> you type in your font manually. I went for Telugu MN, but Arial Narrow also makes a more decent appearance.
  • Window Mode: As of now, the default (Window/Fill Screen) is the preferred mode. in MacOSX. In a Window mode, some Layouts do not show its entire content. However, if you want to copy/paste some config text into Attract Mode, the Window Mode is better for doing the work, then switch back.
  • Don't head for Fullscreen: If you configure Attract Mode for Fullscreen Mode, it looses its focus and MAME exits back to the Desktop, not Attract Mode. So stay with Window/Fill Screen for the time being.
6. Get Layout Packs: You will want to get away from the basic Attract Mode layouts, the real eye candies are spread over the net.
Move your layouts (unpacked directories) into ./attract/layouts - in my case:

(these are your custom layouts, while the packaged Attract Mode program itself contains further standard layouts, such as AttractMan; screenshot above is robospin_v4)

7. Configure MAME for usage in Attract Mode - head for Configure/Emulators - edit/create mame (or alternatively create mame under Add New Emulator), now configure the emulator according to your system - whereas:

$HOME stands for the Mac Home directory of your User, in which also the .attract directory is located (as already explained above)
[name] must not be deleted in the arg section, otherwise it does not work

Here is my own config as an example:
NOTE: I have generated MAME as "Arcade", which is not a requirement, but which in my case enhances compatibility with the Retropie system

# Generated by Attract-Mode v2.4.1-6
executable           $HOME/Games/mame/mame64
args                 [name]
workdir              $HOME/Games/mame
rompath              $HOME/Games/mame/roms/
romext               .zip;.7z
system               Arcade
info_source          listxml
exit_hotkey          Joy0 Button12
artwork    flyer     $HOME/Games/mame/flyers
artwork    marquee   $HOME/Games/mame/marquees
artwork    snap      $HOME/Games/mame/videosnaps;$HOME/mame/snap
artwork    video     $HOME/Games/mame/videosnaps
artwork    wheel     $HOME/.attract/scraper/mame/wheel

The most important options are obviously: executable, args (do not delete [name] !), rompath, and the artwork folders for re-using your already existing artwork (so you do not duplicate anything from your existing configuration for Attract Mode).

Hint for QMC2 Frontend Users: You can easily retrieve your current args by just launching a game with default options in QMC2. After exit, you find the exact args in the Front End log at the lower right. Just copy/paste them into Notes and adjust the string as required for the args line above. Very easy!

Hint: You can also edit this file easily in a Text Editor of that choice - you find it under
$HOME/.attract/emulators/mame.cfg (or in my case Arcade.cfg)
Later fine tuning is much faster achieved via the Text Editor.

8. Generate Romlist for MAME: After configuration, you again enter your MAME Emulator configuration in order to generate your Romlist for Attract Mode. Depending on the scope of your romset, this can take quite some time.

Hint: After updating your MAME and romset, you will have to re-generate your Romlist here. Existing artwork is not affected as long as rom names do not change.

9. Create your Attract Mode Display for MAME - head for Configure/Displays/Add New Display and create this Display with the following parameters:
  • Display Name: whatever you want - in my case just mame
  • Layout: nevato should be available -> choose nevato
  • Collection Rom List: mame (= the one that you created just one step before)
  • Show in Cycle: yes
  • Show in Menu: yes
  • Filter: Favourites
  • all else unchanged
As explained, in huge romsets like MAME, a Favourites-Filter is essential.

10. You should now have two lists available in Attract Mode:
  • Display Menu: the top menu for all Displays (currently only MAME) and an exit option
  • mame: the Display that you just created, and in this Display you should already see a first layout of the nevato (or whatever) Layout
11. Scrape for further artwork (not covered in your own artwork directories): If you have already some artwork in your default MAME configuration, the most important thing you need is wheel artwork. In any case, when scraping for a larger romset, it makes much sense to limit scraping to one category, e.g.:
Configure/Scraper/Scrape Game Logos (Wheel Art) -> yes (anything else no)
then head for
Configure/Emulators/mame/Scrape Artwork
To get the artwork for the wheel navigation. All results of scraping will be saved under .attract/scraper in a directory structure like this (depending on how many categories you want to scrape):

Under wheel, all the wheel navigation artwork is saved under its corresponding rom name as png. This is very convenient because for any missing wheel artwork, you can manually add further artwork here!

Very handy Artwork instructions:

12. Adjust the Nevato Layout along the following under Configure/Displays/mame/Layout Options
  • cab screen - video (if your MAME Video Directory is configured properly, you see video snaps of each game in the cab)
  • scanlines on screen - light
  • marquee artwork - marquee (if your MAME Marquee Directory is configured properly, the marquee on the cabinet changes with each rom)
  • LCD right side - rom-filename (in this theme the only place where the rom filename is shown)
  • spinwheel artwork - wheel (= the artwork that we just scraped before)
  • background art - none (let's keep it simple)
  • background ststic image - black
  • background mask - dark
Congratulations - this is end of Part 1: If all is configured nicely, you have a MAME frontend that looks like this:

Here is part 2.


  1. Sure:


Any comments are welcome!