02 April 2022

FINALLY: perfect scrolling in MacMAME by configuration!

👾👾👾👾👾👾 Time to celebrate. After so many attempts, I finally stumbled across the perfect configuration for flawless scrolling in MacMAME. 👾👾👾👾👾👾

Update 16 July 2022: It seems to me that with displays higher than 60 Hz, the nothrottle option would not work, as it results in speeds far above 100%. At least that was the result of my testing with a MacBook Pro M1. With such monitors, you would not need this hack anyway as waitvsync alone already provides for perfect results.

Showcase Moon Patrol - watch on your system how it scrolls sideways 

Until now, the usage of waitvsync, which is rather important for avoiding bleeding, caused stuttering in MacOS. As the MAME documentation explains:

On macOS, -waitvsync does not block; instead the most recent completely drawn frame will be displayed at vblank. This means that if an emulated system has a higher framerate than your host display, emulated frames will be dropped periodically resulting in motion judder.

That's why waitvsync is disabled by default. Now, very surprisingly, nothrottle combined with waitvsync comes to the rescue! With this MacMAME emulation is close to perfect for me! No 144 Hz monitor or Adaptive Sync required.