01 December 2018

41.000 page views later ... the state of MAME on MacOS

I remember January 2016, when I started this Blog. MAME on MacOS was working, but a somewhat limited venture with scarce information being available on the Internet. I started this blog based on my own trial and error attempts. Since then a lot has changed to the better. 44 posts and 41.000 page views later, it's time to have a look at the current state of MAME on Macs.  

The bright side of things:
The mixed picture:
  • With newer versions of MAME (still have to figure out since when), the CRT-GEOM OpenGL shaders tested here no longer work. So you need to rely on BGFX with similar performance in the CRT-GEOM shader, which is basically no problem.
  • Retroarch/MAME would be great, but only old versions work on Macs. The MAME/current core is outdated. MAME 2010 is decent for old school games, but from time to time buggy in my own testing. I am unsure about the stability of the Metal driver of Retroarch, it seems to crash from time to time. Retroarch/MAME under Ubuntu is a by far more stable experience (though it also has its limitations). I am particularly missing the brilliant Runahead feature in MAME/current cores (for Linux as well). So while I am constantly looking into this, current limitations are too many for a good MAME experience. 
  • What about OpenEmu? While I really appreciate their Mac approach on emulation, it simply comes with too many limitations in MAME - for a reason the MAME emulation is only experimental in OpenEmu. OpenEmu seems to use version 0.169 of MAME, and if I am not mistaken, this is also where Retroarch/MAME currently stands. Despite the higher learning curve, I would prefer Retroarch over OpenEmu.
What is still true for MAME in overall:
  • For best MAME experience, you should not shy away from text editors and config files. You will have a better system if you do your configuration in these files manually. Don't rely on frontends for configuring MAME - but go this way:  https://mameonmacs.blogspot.com/2017/05/mame-0185-from-scratch-via-mewui-update.html
  • Shaders and in-game artwork (bezels and backtrops) make a huge difference. Just have a look at the title picture of this Blog, and you'll understand.
  • Also have a look at the special realistic artwork bezels that I am building up in this repository. I am still blown away by their quality (mainly created by John Merrit and Orionsangel): https://github.com/estefan3112/MAME-Realistic-Bezel-Artwork
Since MAME lives from the community, may I repeat that any feedback form your side is much appreciated! Apologies for missing out on them from time to time, but I surely read them all. 

Setup MAME 0.204 from scratch on Macs (Update December 2018)

Another update on how to configure MAME from scratch via its internal interface MEWUI (default MAME UI since 0.171) and a text editor.  
If you are willing to work with your Terminal and a Text Editor, it is just the best way to set up and maintain MAME, irrespective of which frontend you wanna use later on.
So let's go step by step from scratch. 
MEWUI - click to enlarge
Step 1 - Basic Homework 

Download and install SDL 2 and QMC2 as explained here (only Steps 1 and 2). Download a good text editor - I prefer TextWrangler from the Mac App Store. Change Finder Settings in order to Display Hidden Folders and Files, e.g. with Deeper (you need access to your User Library folder, which is by default a hidden folder). Of course, download MAME from here and unzip it into the place of your choice.

Recommendation: I currently keep my running MAME version in the folder 'mame' and keep only older versions in a version-related directory. This definitely helps you further on to stay consistent and carry on your work.

Step 2 - Create .ini files in Terminal and manually configure ini path

After a lot of testing, my clear recommendation is to create your first .ini files from the Terminal. This should save you from a lot of headache by multiple .ini files that just cause confusion.

  • Start Terminal and cd into your directory of MAME (recommendation: name your main directory mame, if you run different MAME versions, hold your actual version under plain mame)
  • Now in the Terminal and in the right directory, the command ./mame64 -cc generates the three default config files in your mame directory:
mame.ini - your overall configuration file for MAME
plugin.ini - your configuration file for activating and deactivating MAME Plugins
ui.ini - your configuration file for the MEWUI interface
  • By default, mame.ini contains the following multiple ini paths:
inipath  "$HOME/Library/Application Support/mame;$HOME/.mame;.;ini"
In my own experience, this is rather unfortunate, because you may end up with multiple .ini files at multiple places rather easily. Since MAME then considers all these .ini files in a certain row, you may be lost in chaos. Right now, I actually prefer having all .ini files in the MAME directory called ini, thus I reduce this line as follows:
inipath                   ini
This means of course that you have to move the three .ini files created in the first step into the ini subdirectory. As long as you do not forget about the ini directory when moving to a new MAME version, this is probably easiest to handle, and the /Library/Application Support directory stays clean of MAME config files.
 Step 3 - Start MEWUI (the right way)

Open Terminal and switch to your MAME working directory (easiest way: type 'cd' and then drag the mame directory from the Finder into the Terminal -> press Return in the Terminal window)

Warning: starting mame64 with double-click works, but you are not in the MAME working directory, so a lot just does not work -> start via Terminal as explained here. So you must be in the MAME working directory!

29 November 2018

41.000 page views later ... the state of MAME on MacOS

I remember January 2016, when I started this Blog. MAME on MacOS was working, but a somewhat limited venture with scarce information being available on the Internet. I started this blog based on my own trial and error attempts. Since a lot has changed to the better. 44 posts and 41.000 page views later, it's time to have a look at the current state of MAME on Macs.  

The bright side of things:
The mixed picture:
  • With newer versions of MAME (still have to figure out since when), the CRT-GEOM OpenGL shaders tested here no longer work. So you need to rely on BGFX with similar performance in the CRT-GEOM shader, which is basically no problem.
  • Retroarch/MAME would be great, but only old versions work. The MAME/current core is outdated. MAME 2010 is decent for old school games, but buggy in my own testing. I am unsure about the stability of the Metal driver of Retroarch, it seems to crash from time to time. Retroarch/MAME under Ubuntu is a by far more stable experience (though it also has its limitations). I am particularly missing the brilliant Runahead feature in MAME/current cores (for Linux as well). So while I am constantly looking into this, current limitations are too many for a good MAME experience. 
  • What about OpenEmu? While I really appreciate their Mac approach on emulation, it simply comes with too many limitations in MAME - for a reason the MAME emulation is only experimental in OpenEmu. OpenEmu seems to use version 0.169 of MAME, and if I am not mistaken, this is also where Retroarch/MAME currently stands. Despite the higher learning curve, I would prefer Retroarch over OpenEmu.
What is still true for MAME in overall:
  • For best MAME experience, you should not shy away from text editors and config files. You will have a better system if you do your configuration in these files manually. Don't rely on frontends for configuring MAME - but go this way:  https://mameonmacs.blogspot.com/2017/05/mame-0185-from-scratch-via-mewui-update.html
  • Shaders and in-game artwork (bezels and backtrops) make a huge difference. Just have a look at the title picture of this Blog, and you'll understand.
  • Also have a look at the special realistic artwork bezels that I am building up in this repository. I am still blown away by their quality (mainly created by John Merrit and Orionsangel): https://github.com/estefan3112/MAME-Realistic-Bezel-Artwork
Since MAME lives from the community, may I repeat that any feedback form your side is much appreciated! Apologies for missing out on them from time to time, but I surely read them all.

19 November 2018

Attract Mode 2.5.1 released and MAME Exit Freeze Resolved

While Atteact Mode undergoes further improvements with a release of v.2.5.1, the really big news of this weekend is that a forum user finally found the right settings under Windows 10, and this immediately resolved my problems in MacOS High Sierra as well:

The only thing I had to change was in the Emulator settings - specifically for MAME:
Non-blocking wait mode - change from 0 to 1

That's all. Now MAME correctly exits back to Attract Mode on my machine just as before. No hanging black screens and force-quit of AM any longer. Very good - kudos to user mrteeney!

Sources:
http://forum.attractmode.org/index.php?topic=2589.0
https://github.com/mickelson/attract/issues/374


28 October 2018

Brief Update on Attract Mode 2.5 official (Update 2 on 11 Nov)

Update 2 - a word of caution: Since I updated to Attract Mode 2.5, I am another victim of the infamous 'MAME loses focus' bug as described here:
http://forum.attractmode.org/index.php?topic=2589.0
This bug makes the Attract Mode - MAME combination unusable because I need to force quite Attract Mode every single time I exit a MAME game. So if you have an older running system, it might be a good idea to avoid it for the time being.

Update: Attract Mode 2.5 has been released - so grab the Mac binary and enjoy!


Attract Mode has again become better. Now there is really nothing to complain on Macs as well. I also include instructions how to compile Attract Mode by yourself.

A fast photo taken from my iMac running Attract Mode and Cosmo's Layout
My recommendations for running Attract Mode with MAME:

1. Compile your own binary, it just works and you have some very nice improvements implemented (most of all, very fast artwork loading). What you need is not that much:
(a) Homebrew: you should have it installed and be accustomed with it
(b) Homebrew recipies "pkg-config", "ffmpeg", "sfml" and "libarchive" 
(c) Get the Attract Mode source code from github: https://github.com/mickelson/attract
(d) Move the source code to /private/tmp/ - the source code will be deleted at reboot
(e) In the Terminal, switch to the following Attract Mode source code subdirectory:
       /private/tmp/attract/util/osx
(f) Execute the following script in the Terminal
       ./create-pkg.sh
This creates a MacOS package for installing Attract Mode via Drag&Drop in the attract directory.


2. Recommended Layout: Cosmo Arcade

3. For instructions on setting up Attract Mode and Layouts, just search for 'attract' in my blog or just jump to this post:


Should you still hesitate, believe me: It is really worth the time. Best gaming experience you can get on your Mac.

01 September 2018

MAME 0.201 - Major BGFX Performance Achievements!

We have been waiting for this for a long time: MAME 0.201 finally fixes the problem with BGFX when running Artwork Bezels 

As of MAME 0.201, you can run BGFX/Metal shaders along with Artwork bezels without taking a huge performance hit. This is really great news. BGFX/Metal is finally becoming stable on Macs.

Just to remind you why Artwork matters (click to enlarge):


My iMac running 1943
My iMac running 1943 with Artwork












Here is my testing of MAME 0.200 vs. 0,201 in BGFX/crt-geom-deluxe/Metal with Artwork/without Artwork - from the Terminal in the MAME main directory:
./mame64 -video bgfx -str 60 -noafs -bgfx_screen_chains crt-geom-deluxe -bgfx_backend metal -noreadconfig -nosleep -nothrottle (-nobezel) (romfilename)

28 July 2018

Attract Mode 2.4.0 is out - for MacOS as well!

Very exiting news - after a very long time since version 2.0, there is a new version 2.4.0 out that also includes a MacOS bundle. In this blog, you will find quite extensive articles about setting up a superior frontend for MAME under MacOS. All should work in this version as well.

At first glance, everything seems to work just as it should, but I will do further thorough testing. It is just great to have an official MacOS release out again.


And enjoy!

Important when running MAME: Be sure to have the lower right corner not activated as Hot Corner, as described here:
https://github.com/mickelson/attract/issues/472
If activated as Hot Corner, Attract Mode starts into the screensaver, and if you have your screensaver protected with your password, you can only shut down your Mac!
In newer attract.cfg versions, you will find this option:
move_mouse_on_launch no
This option disables moving the mouse to a corner -> another way of solving it. Be sure that your attract.cfg contains this line.

Just to remind you of my tutorials for setting up Attract Mode under MacOS:

Part 1 - https://mameonmacs.blogspot.com/2017/01/attract-mode-for-mame-under-osx.html
Part 2 - https://mameonmacs.blogspot.com/2017/01/attract-mode-for-osx-setup-part-2.html

18 April 2018

Testing Out MAME Retroarch

Mini Update November 2018: Since Retroarch/MacOS is still not ready for prime time, this is about testing out Retroarch, MAME official is still my favorite.

So I have been testing out Retroarch for quite some time, and only as of the most recent Nighty 1.7.2 builds, I realized that it is time to switch from MAME to test out Retroarch. Here I will explain why I believe that Retroarch - even with old MAME Cores - can provide the best retrogaming experience so far.

UPDATE 24 April 2018: Retroarch 1.7.2 is out as a stable build, so grab it here.

If you have never dealt with Retroarch - look into ETA Prime's brand new video on installing Retroarch that also works on Macs: 

If your Mac has an NVidia Card, I recommend that you try out the CG version of Retroarch because it has an abundance of shaders on board. 

Here is an overview of the Retroarchs pro's and con's:

+ The brand new Runahead feature of Retroarch 1.7.2 also works on MAME and is a game changer. With a Runahead of two frames, the very snappy Arcade games, such as 1942, Pacman, Gyruss and the like, for the first time are as snappy as expected. If you are in games such as 1942, just try it in RetroArch with the 2 frames Runahead feature - and you will be blown away by its immediate snappyness.
Here is the explanation of the Runahead feature: 
Note: For this crucial feature, you must install a Nightly Build of Retroarch on your Mac.

+ If you like to experiment with different shaders, Retroarch is paradise. In fact, you could be lost in the sheer amount of different shaders. In any case, it is safer to load the pre-defined Shader Presets.  My favorite shader is called x4br-hybrid-crt.cg (it is also available in OpenGL). This shader brings a very attractive combination of xbr Scaling with crt-type scanlines. The results are very pleasing to me, a kind of slight modernization, but still with sufficient retro feeling.

Wonderboy In Monsterland with x4br-hybrid-crt Shader - best of both worlds (click to enarge)
+ Retroarch is already very strong in reckognizing joysticks from scratch. My PS4 joyapd via USB works extremely well. Combined with the Runahead feature, hardly to beat for me.

+ The MAME 2010 Core finally is ready for productive use. It has internal Highscore support out of the box, and most games just work very nicely.

Here is what you need to know about the drawbacks of Retroarch compared to native MAME:

- The MAME current Core of Retroarch does not compile in MacOS, and neither does the Linux Core work on my machine. MAME 2010 works very well, so you miss out on all enhancements in MAME since 2010. If you are, like me, with Arcade Classics, you probably do not miss an awful lot.

- With the different MAME Cores, Rom management becomes a challenge. You will have to deal much more with Rom problems, and Roms that work on one core by far do not always work on another Core.

- In overall, Retroarch has a steep learning curve, but if you ask me, it's worth it for perfecting your Arcade game experience.

Update since my tests: Unfortunately MAME 2010 proves to be buggy, I would love to explain in more detail, but can't. Some games crash after some time. So all in all, it is too early for me to move.





02 March 2018

MAME 0.195 is a good build on Macs

From my first tests, MAME 0.195 is a nice build: It compiles nicely and has a running BGFX/Metal backend. I spotted some irregularities in BGFX, but all in all my favorite games seem to run smoothly. As always, the list of changes is overwhelming.

08 January 2018

MAME 0.193 and Dave Haywoods Review of MAME in 2017

As pointed out by the developers here, MAME 0.193 seems to have issues in BGFX - at least in the Windows build. Although I did not encounter those in the official Mac build, it seems to me that the nothrottle command does not seem to work in BGFX because all games run at exactly 100% in  BGFX.

Important Update: I moved to MacOS High Sierra due to Spectre and the Meltdown. Here I see a consistent decrease of performance by up to -15% in the games I had tested before. This seems to be consistent with predictions in the tech community. This observation currently only applies to OpenGL, since BGFX for some reason does not execute the -nothrottle option in MAME 0.193.

Before that, under MacOS Sierra, I had noticed quite significant performance gains under OpenGL/CRT-GEOM Deluxe of 10-20% in nothrottle mode.

And if you want to have an impressive overview of what happened in 2017 on the MAME side, this is a must read: https://mamedev.emulab.it/haze/2017-new-focus/
A very impressive summary and many nice screenshots. So that you know what you should test on your newer MAME systems.

24 December 2017

Update: Attract Mode 2.3.0.17 for Mac Unofficial Binary (With SWF Support)

Now that the SWF compile bug has been ironed out, Attract Mode 2.3.0.17 is here for Macs:

Update August 2018: No longer needed, Official Attract Mode 2.4 is out!

30 November 2017

MAME 0.192 and QMC2 0.192 Mac Binaries are here!

A good release for MAME on Macs. QMC2 also compiles on Macs after some time. QMC2 looks very good so far, and I will review my QMC2 to-do's all over this Blog to be on par. Happy gambling!


11 November 2017

Performance Test Galore: MAME Performance on Three Operating Systems on one Mac Machine Compared!

My new task was to test performance of current MAME binaries on one machine (my iMac 2013) with these three operating systems:
  - MacOS Sierra
  - Ubuntu 16.04
  - Windows 10

Focus of this test: How do BGFX shaders compare to other solutions if you add Artwork? My suspicion has always been that BGFX never can handle Artwork properly.

Result: As soon as you add Artwork, BGFX performance completely goes down - on all three systems! 

This means that if you want to run your games with decent shaders AND decent artwork, you need to head for different shaders, which are
  - MacOS and Linux: OpenGL
  - Windows 10: Direct3D
The extreme results were very surprising for me, so in the end, it was worth the hassle.

Further insights will follow here. For now, these are the detailed performance results (forgive me that I limited each run to 30 seconds ;-).



03 October 2017

MAME 190, 21.000 views on my site and the state of MAME on Macs

With MAME 190 having been released, just a brief note on where MAME currently stands as it comes to the Mac environument.
  1. First and foremost, I see 21000 views on this site. Considering the narrow topic covered here, this is encouraging. So there are Mac users out there who are interested in MAME emulation. Thank you! And please do not hesitate to post if there is something to mention.
  2. As you probably read in this blog, MAME works quite nice on modern Macs. As regards the Mac build, the METAL backend does not build properly in recent macOS systems. However, the official build from http://sdlmame.lngn.net/ is built on an older MacOSX system and has a working METAL backend. The build from http://choccyhobnob.com/mame/mame/ does not a working METAL backend, and same goes with my own build attempts.
  3. I would really like to write a bit about the Retroarch MAME core with its entirely different approach to game emulation. However, the MAME (current) core for macOS is also outdated since nearly a year and does not build. On modern Macs, I would not mess around with the (running) cores for MAME 2003 or 2014, unless you have a really old Mac machine. I sincerely hope that this will change because Retroarch would be another great option for Mac users.
  4. When it comes to frontends, QMC2 and Attract Mode are out there and in decent shape. This blog contains a lot of information on how to set them up on Macs. As for Attract Mode, I am a bit worried about the lack of updates for quite some time. But addmitedly it works nicely.
The next big thing to come would probably be the High Sierra update, on which I will still be waiting a bit. With an 8bitdo Arcade Stick at home, playing could excel to new levels. And yes, still waiting for the Retroarch MAME core to come back to life. Cheers and happy gaming!

10 August 2017

MAME 0.188 and new insights into the METAL bug

Last week, MAME 0.188 arrived, as always, with a lot of improvements. As regards game improvements, it is very nice to see that the first Game & Watch titles are released with SVG backgrounds built inside, so there is some very nice progress going on.

One of the first G&W titles with SVG backgrounds
On the Mac side of things, I figured out by coincidence that the MAME builds released by r0ni (considered to be official MAME builds for the Mac) have a working METAL backend! r0ni explained to me that he builds under 10.9 (updated LLVM using MacPorts) with the following command:

make PTR=1 TARGETOS=macosx TOOLS=1 NOWERROR=1 -j5

This set of instructions does not work on my system and ends with an error:

ld: warning: ignoring file /Library/Frameworks//SDL2.framework/SDL2, file was built for x86_64 which is not the architecture being linked (i386): /Library/Frameworks//SDL2.framework/SDL2

Undefined symbols for architecture i386:

This means that it is a good idea to work with this build of SDL MAME for the Mac:
So it might be that compiling under 10.12 does not work out nicely as far as the METAL backend is concerned ?!?

03 July 2017

Mid-Year MAME 0.187 with no big news on the Mac side of things

Game & Watch titles look promising, but are apparently missing the overlays for proper gaming experience - as presented by Definitely Russian here:
https://www.youtube.com/watch?v=_8IYCHueuso

BGFX/Metal bug still seems to be in place

Otherwise another solid release

20 June 2017

Erockus Arcade 4.0 and MacScene Emulation Forum

As suggested by some of you, I gave Erockus Arcade a try. I was testing the new version 4. Unfortunately my testing did not turn out nicely. Here is a short summary.

1. Erockus is a bare bones frontend without any screenshot or even video preview options. This can fit you if you want to just head for the games and nothing else. But for many of us, MAME is not just playing, but it is about preserving the original feel.

2. The Erockus configuration writes directly into your mame.ini and does not accept manual configuration (at least not of the options it directly handels). An existing mame.ini is backed up. This can be ok, if you are aware of it. 

3. However, after three starts, Erockus stopped working on my system with the latest MacOS Sierra installed. After a startup time of more than two minutes (full romset), it ends up with an error. In my last attempt for this post, Erockus just froze after 3 minutes without any message, so I had to Force Quit.

This is why I could not do any further testing, and I also cannot provide screenshots here. All in all, the software might be ok for your if you are looking for fast gameplay - if it works on your system. In my case, unfortunately.

I also want to mention the MacScene Emulation Forum this time, although I did not succeed registering for some reason ;-). If anybody of you has an idea how to register (is it still alive?), I would consider again. Thanks. One thing is clear: When it comes to emulation, Macs are still a rather difficult environment (to say the least)...

31 May 2017

MAME 0.186 is out

The Change Log for that version is more than impressive, and I very much look forward to hearing Cheeky Mouse sounds again after so long :-). Space Cyclone and first working Game & Watch gems are other things that caught my immediate attention. 

Mac Binaries are available, including a new Homebrew Formula. More to follow.

26 May 2017

CLRMame Pro 4.032 with Wine: Scanning ROMs on your Mac

As of this post, I am doing my first scan tests with the newest CLRMame Pro 4.032 under MacOS. This is possible thanks to the Wine layer that itself can be installed rather flawlessly via Homebrew.

Installation
Assuming that you have already Homebrew and Homebrew Cask installed, install XQuartz cask and then wine with Homebrew:
brew cask install xquartz
brew install wine
You may also want to head to this excellent summary.

Then download the zip version of CLRMame Pro, then unzip the directory containing the program files to a place of your choice. That's basically it.

Usage
Open the Terminal, cd to the CLRMame Pro directory and start the program with

wine cmpro64.exe

This is where I am right now, and now it's time to learn the program with these instructions here. Still being a newbie in correct rom management, I might revert back later until I got comfortable with the process. Enjoy!

29 April 2017

MAME 0.185

Also this update from Wednesday brought no surprises. 

The binary bottle in Homebrew has also been updated. And the BGFX Metal bug is still with us.

I am currently quite occupied with MAME on my Raspberry Pi, which is sometimes a completely different ballpark due to its performance limitations. Still it is incredible fun, and there might be some learnings for low-performing Macs as well.