06 October 2022

Attract Mode on Steroids: At-The-Arcade Flex is a must tryout

Update 6 October 2022: This GitHub repository provides very recent Apple Silicon builds of Attract Mode

https://github.com/djhan/attractplus-for-mac

See https://github.com/djhan/attractplus-for-mac/blob/master/attract-2.6.2-41.dmg

And Attract Mode builds very nicely on Silicon Macs, just use the create-pkg.sh Script from the /util/osx subdirectory. It only works with Homebrew but not MacPorts, though. And if you want to use the created dmg on another Mac (even identical AppleID), you need to codesign the binary, the dylibs and the app container manually, otherwise you get a "permission denied" error and other error messages.

——-

During my testing, I could not identify any flaws, except for the non-functional history.dat plugin. So kudos to DJHan for these builds. For Intel builds, revert to the discussion below and try his Intel builds, or just stick with the official old builds that still work fine.

Minor update 10 July 2022: As explained in the comments below, if you  want to compile your own .app bundle (which works nicely), it seems to me that you must sign it with your own Developer Certificate. Otherwise the compiled app would even not work on your own Mac (at least I think so).

Attract Mode still impresses, as its layout capabilities are further evolving in the community. This release of a layout called "At-The-Arcade-Flex" is so outstanding that I had to produce this small video.

How to get there:

  1. Setup, part 1 - is a mandatory read, in particular how to toggle new layouts
  2. Download and install the theme from here: http://forum.attractmode.org/index.php?topic=3979.0 - read instructions carefully, but note: On Macs, the gtc-common folder goes into the .attract root directory of your user.
  3. Download the updated cabs from the same forum post and put them all in a directory of your choice (must match with the directory below!)
  4. And these are the important parts of your Arcade.cfg file - cabinets folder definition in red:

executable           $HOME/Games/mame/mame

args                 [name]

workdir              $HOME/Games/mame/

rompath              $HOME/Games/mame/roms/

romext               .zip;.7z

system               Arcade

info_source          listxml

nb_mode_wait         2

exit_hotkey          Joy0 Button12  

artwork    cabinets        $HOME/Games/mame/cabinets_am 

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


It's very snappy and extremely noisy - you get the cacaphony of an arcade hall, and your own video sound prevails over it. What a joy! Try out and be amazed.



12 comments:

  1. Hello, I'm big fan of your blog. Also I build Attract Plus 2.6.2 for MacOS X. Please download from following link, and please tell me your thought of this build. ( https://drive.google.com/file/d/1caKSqfYVJ2i4amFqAor-vPdXmpt6cu5S/view?usp=sharing )

    ReplyDelete
    Replies
    1. Hello, and many thanks for this build! I ran into one problem with your build, which I resolved with a rather rude workaround:

      dyld[1453]: Library not loaded: @loader_path/libbrotlicommon.1.dylib
      Referenced from: /Applications/AttractPlus.app/Contents/libs/libbrotlidec.1.0.9.dylib
      Reason: tried: '/Applications/AttractPlus.app/Contents/libs/libbrotlicommon.1.dylib' (no such file), '/usr/local/lib/libbrotlicommon.1.dylib' (no such file), '/usr/lib/libbrotlicommon.1.dylib' (no such file)Library not loaded: @loader_path/libbrotlicommon.1.dylib
      Referenced from: /Applications/AttractPlus.app/Contents/libs/libbrotlienc.1.0.9.dylib
      Reason: tried: '/Applications/AttractPlus.app/Contents/libs/libbrotlicommon.1.dylib' (no such file), '/usr/local/lib/libbrotlicommon.1.dylib' (no such file), '/usr/lib/libbrotlicommon.1.dylib' (no such file)
      /Applications/AttractPlus.app/Contents/MacOS/launch.sh: line 3: 1453 Abort trap: 6 ./attractplus

      My workaround: I made a copy of libbrotlidec.1.0.9.dylib and renamed it to libbrotlicommon.1.dylib, and put that additionally into the libs directory. Then it started without problems. Do you think that you could fix this?

      Is there also a possibility for you to share your build instructions? With the generic build instructions, I fail, also on Intel Macs. Many thanks, much appreciated!

      Delete
    2. By the way: Does the history.dat plugin work for you? I cannot get positive results, even if it index correctly, both the old and the new format. Thanks a lot!

      Delete
    3. Hello, I'll check issue that you reported. Also I can't use history.data plugin yet. It will be checked, too. Thanks!

      Delete
  2. I rebuild attract plus. Also I checked it works well;
    for m1: https://drive.google.com/file/d/1YSp9rqpbMX4b3yvFEFQbKGVzAHPJLw6H/view?usp=sharing
    for intel: https://drive.google.com/file/d/1HuBHSkRiMvpxld8ZroGmNWFEiv53LxtV/view?usp=sharing
    And you allow this app in [System Preferences > Security & Privacy > General]. Thanks, best regards.

    ReplyDelete
    Replies
    1. Very nice, the Silicon Chips version works like a charm, well done! Don't you want to provide either build instructions or builds into the repository? Anyway, if you are fine with it, I would add these links to my above post, because this is really nice progress, thank you so much!

      Delete
    2. Hello, I'm DJ.HAN. Of course, you can post my attract plus download link. :-)
      Also I'll prepare distribution page in github. But It's impossible to make universal binary build. I'll build only apple silicon version.

      Delete
  3. Sorry, I forgot login. Anyway, please post my build link freely. Thanks!

    ReplyDelete
  4. Hello, I forked AttractPlus for mac. Also release for M1 Mac.
    https://github.com/djhan/attractplus-for-mac/releases/tag/2.6.2
    Please download this version, and test it works properly.
    Thanks, best regards.

    ReplyDelete
    Replies
    1. This is very nice, indeed. So far it works perfectly. Doing some last tests, then do an update of this post with your GitHub Repo, many thanks!

      Delete
    2. Hello again, I was finally able to compile our repository on an M1 Mac, and it works. One thing regarding your Mac-specific explanation:

      "This version can build Apple silicon mac version(Not include intel). You must set codesign_identity variable of 'util>osx>bundlelibs.py' to your apple developer certification. If you didn't set properly, bulided AttractMode will not work other's mac. Open 'util>osx', and run 'create-pkg.sh'."

      As I learnt from the Internet (finally), codesigning is mandatory on Silicon Macs, even your own binary will only run if you apply your own signing certificate. So if I compile without changing bundlelibs.py, the App Bundle will not start. Only after re-signing the nested binary, all dylibs plus the app bundle with my own signing certificate, the self-compiled App would start. You might want to amend this in your ReadMe File. Cheers, great work!!!


      Delete
    3. Hello. Your explanation is right. You must set codesign_identity to your 'own' developer certification. bundlelibs.py can signing runtime app and nested libraries. I'll add more explanation to my readme file. Thanks!

      Delete

Any comments are welcome!