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:
- Setup, part 1 - is a mandatory read, in particular how to toggle new layouts
- 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.
- 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!)
- 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
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 )
ReplyDeleteHello, and many thanks for this build! I ran into one problem with your build, which I resolved with a rather rude workaround:
Deletedyld[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!
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!
DeleteHello, I'll check issue that you reported. Also I can't use history.data plugin yet. It will be checked, too. Thanks!
DeleteI rebuild attract plus. Also I checked it works well;
ReplyDeletefor 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.
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!
DeleteHello, I'm DJ.HAN. Of course, you can post my attract plus download link. :-)
DeleteAlso I'll prepare distribution page in github. But It's impossible to make universal binary build. I'll build only apple silicon version.
Sorry, I forgot login. Anyway, please post my build link freely. Thanks!
ReplyDeleteHello, I forked AttractPlus for mac. Also release for M1 Mac.
ReplyDeletehttps://github.com/djhan/attractplus-for-mac/releases/tag/2.6.2
Please download this version, and test it works properly.
Thanks, best regards.
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!
DeleteHello again, I was finally able to compile our repository on an M1 Mac, and it works. One thing regarding your Mac-specific explanation:
Delete"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!!!
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